首先,我们新建了一个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();
}
}