文件结构图:
public class Person {
public static void main(String[] args) {
//使用简单工厂模式进行设计
DefaultFactory f=new DefaultFactory();
Car c=f.createCar();
c.run();
AK47 ak47=f.createAK47();
ak47.shot();
/**
* 打印结果:
* 我开着一辆汽车..
* 拿着一只Ak47手枪
*/
//使用这种的话对工厂进行替换的时候也必须对下面的类(Car AK47)也进行全部的替换,耦合度高
MagicFactory f1=new MagicFactory();
Broom broom=f1.crateBroom();
broom.run();
MagicStick ms=f1.createMagicStick();
ms.shot();
}
}
/**
* 打印结果:
* 我骑着一根扫帚..
* 拿着一只魔法棒.
*/
public class DefaultFactory{ public AK47 createAK47(){ return new AK47(); } public Car createCar(){ return new Car(); } }
public class MagicFactory{ public Broom crateBroom(){ return new Broom(); } public MagicStick createMagicStick(){ return new MagicStick(); } }
public class Car { public void run (){ System.out.println("我开着一辆汽车.."); } }
public class AK47 { public void shot(){ System.out.println("拿着一只Ak47手枪"); } }
public class Broom { public void run(){ System.out.println("我骑着一根扫帚.."); } }
public class MagicStick { public void shot(){ System.out.println("拿着一只魔法棒."); } }