java抽象工场模式
java抽象工厂模式
Uml图:
抽象产品:
public abstract class Firearms { public abstract String getName(); } public abstract class Bullet { public abstract String getName(); }
具体产品:
public class HandGun extends Firearms { @Override public String getName() { return "手x枪"; } } public class Pompom extends Firearms { @Override public String getName() { return "机关枪"; } } public class HandGunBullet extends Bullet { @Override public String getName() { return "手x枪子弹"; } } public class PompomBullet extends Bullet { @Override public String getName() { return "机关枪子弹"; } }
抽象工厂:
public abstract class ArsenalFactory { public abstract Firearms createFirearms(); public abstract Bullet createBullet(); }
具体工厂:
public class HandGunFactory extends ArsenalFactory{ @Override public Bullet createBullet() { return new HandGunBullet(); } @Override public Firearms createFirearms() { return new HandGun(); } } public class PompomFactory extends ArsenalFactory{ @Override public Bullet createBullet() { return new PompomBullet(); } @Override public Firearms createFirearms() { return new Pompom(); } }
应用程序:
public class Application { public static void main(String[] args) { ArsenalFactory arsenalFactory = new PompomFactory(); arsenalFactory.createBullet(); arsenalFactory.createFirearms(); arsenalFactory = new HandGunFactory(); arsenalFactory.createBullet(); arsenalFactory.createFirearms(); } }