下面图是简单工厂模式类图,以下工厂模式都是关于披萨的制作
下面图是工厂方法模式类图,其实就是把抽象类中的方法进行抽象,由其子类进行实现抽象类的创建方法,把实例化对象推延到子类
下面图是抽象工厂模式类图,其实就是简单工厂模式的进阶,从单一的工厂变成了工厂簇
总结代码就不贴了,当我们设计一个东西,就比如这个披萨订购系统.为了考虑到设计模式中的对扩展开放,对修改关闭,首先在只有北京披萨和伦敦披萨的情况下,我们设计是把对象的创建交给了工厂进行创建,而我们以后修改代码就不用去修改order订单代码,就可以通过修改工厂的代码进行修改,然后我们的需求变了,多了两种口味,分别是奶酪披萨和胡椒披萨,那么我们现在因为披萨的种类变多,我们则可以考虑利用2个简单工厂模式进行设计,或者引出了工厂方法模式,这个模式实际上就是把抽象类的方法看做一个工厂,然后把对象的实例化延迟到子类进行实例化来完成,你分别用2个类继承这个抽象类,就会有2种口味的类的订单类,
由此还有一种方法,就是抽象工厂模式,这个模式是简单工厂模式的升级版,其本质差不多,就是把原来简单工厂模式的工厂类进行接口化聚合到订单类里面,然后用其子类进行创建对象,其实感觉上就是简单工厂和工厂方法思想的合并.