抽象工厂模式

来源:互联网 发布:amd显卡对什么优化好 编辑:程序博客网 时间:2024/06/02 02:36

首先,我们新建了一个Car类,一个AK47类,还有一个Apple类。

package cn.edu.ustc.dp.factory.abstractFactory;public class Car {public void run(){System.out.println("冒着烟跑");}}

package cn.edu.ustc.dp.factory.abstractFactory;public class AK47 {public void shoot(){System.out.println("哒哒哒。。。");}}

package cn.edu.ustc.dp.factory.abstractFactory;public class Apple {public void PrintName(){System.out.println("apple");}}

然后我们新建一个用户测试类,他有一辆车,一把AK47,一个苹果。

package cn.edu.ustc.dp.factory.abstractFactory;public class Test {public static void main(String[] args) {Car c = new Car();c.run();AK47 ak = new AK47();ak.shoot();Apple a = new Apple();a.PrintName();}}

这里的车,AK47,苹果都是分别new出来的,如果我们想要一次性的定制这些东西就需要用到抽象工厂模式。

首先,我们想到要新建一个工厂,取名为DefaultFactory.

package cn.edu.ustc.dp.factory.abstractFactory;public class DefaultFactory {public Car createCar(){return new Car();}public AK47 createAK47(){return new AK47();}public Apple createApple(){return new Apple();}}

这样的话我们的用户测试类就可以改成这样:

package cn.edu.ustc.dp.factory.abstractFactory;public class Test {public static void main(String[] args) {DefaultFactory f = new DefaultFactory();Car c  = f.createCar();c.run();AK47 ak = f.createAK47();ak.shoot();Apple a = f.createApple();a.PrintName();}}


原创粉丝点击