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();
}
}