设计方式之工厂方法模式(二)

设计模式之工厂方法模式(二)
为了解决简单工厂不满足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的问题,但是这样的代码实在是复杂。
结构复杂度、代码复杂度、客户端编程难度、管理上的难度都大大增加。
所以使用时请谨慎。

下一篇将介绍先进点的抽象工厂模式。