设计方式之工厂方法模式(二)
设计模式之工厂方法模式(二)
为了解决简单工厂不满足OCP的问题,又提出工厂方法模式一概念,下面的例子:
当需要增加新类型B车时,只需要增加对应的类即可,不需要更改工厂类。
看似解决了OCP的问题,但是这样的代码实在是复杂。
结构复杂度、代码复杂度、客户端编程难度、管理上的难度都大大增加。
所以使用时请谨慎。
下一篇将介绍先进点的抽象工厂模式。
为了解决简单工厂不满足OCP的问题,又提出工厂方法模式一概念,下面的例子:
interface Car{ public void run(); public void stop(); } class Ford implements Car{ public void run(){ System.out.println("Ford run。。。"); } public void stop(){ System.out.println("Ford stop。。。。"); } } class Toyota implements Car{ public void run(){ System.out.println("Toyota run。。。"); } public void stop(){ System.out.println("Toyota stop。。。。"); } } interface factory{ Car getCar(); } class ToyotaFactory implements factory{ public Car getCar() { return new Toyota(); } } class FordFactory implements factory{ public Car getCar() { return new Ford(); } }
当需要增加新类型B车时,只需要增加对应的类即可,不需要更改工厂类。
看似解决了OCP的问题,但是这样的代码实在是复杂。
结构复杂度、代码复杂度、客户端编程难度、管理上的难度都大大增加。
所以使用时请谨慎。
下一篇将介绍先进点的抽象工厂模式。