有代码,虽然某种程度不符合设计原则,但实际使用最多)
增加产品族,不可以增加产品,可以增加产品族)
public interface Car { void run(); } |
public interface Car { void run(); } public interface CarFactory { Car createCar(); } public class KaCheFactory implements CarFactory { @Override public Car createCar() { return new KaChe(); } } public class QiCheFactory implements CarFactory { @Override public Car createCar() { return new QiChe(); } } |
public class Client { public static void main(String[] args) { Car c1 = new KaCheFactory().createCar(); Car c2 = new QiCheFactory().createCar(); c1.run(); c2.run(); } } |
简单工厂模式和工厂方法模式PK:
public interface CarFactory { Engine createEngine(); Seat createSeat(); Tyre createTyre(); } public class LowCarFactory implements CarFactory { @Override public Engine createEngine() { return new LowEngine(); } @Override public Seat createSeat() { return new LowSeat(); } @Override public Tyre createTyre() { return new LowTyre(); } } public class LuxuryCarFactory implements CarFactory { @Override public Engine createEngine() { return new LuxuryEngine(); } @Override public Seat createSeat() { return new LuxurySeat(); } @Override public Tyre createTyre() { return new LuxuryTyre(); } } |
public class Client { public static void main(String[] args) { CarFactory factory = new LuxuryCarFactory(); Engine e = factory.createEngine(); e.run(); e.start(); } } |
文章来源: 02工厂模式(创建型模式)