首先,还是引入一个场景:一家披萨店,有许多的披萨种类(CheezePizza, ClamPizza),在新建一个披萨的时候,很可能会这样做:
这就是一个简单工厂,使用这个简单工厂的类代码如下:
类图如下:
当这家披萨店越做越大,它需要做不用风味的披萨:纽约风味的CheezePizza,芝加哥风味的CheezePizza,纽约风味的ClamPizza等等,每种Pizza都可能有两种风味。甚至可能之后还会加入California,Texas风味的等等。
这时候,简单工厂显然不能满足对扩展开放的要求。我们可以这样设计:
抽象的PizzaStore中的createPizza方法交给子类去实现,抽象的PizzaStore只知道抽象的Pizza,其他一概不知。当需要扩展另外一个风味的PizzaStore的时候,只需要从PizzaStore继承,并实现createPizza方法即可。
具体工厂的代码:PizzaStore的代码:
工厂方法模式的类图:
设计原则:
如果不依赖抽象,PizzaStore很可能是这样的:
(to be continued)
分享到:
相关推荐
3、抽象工厂模式(Abstract Factory Pattern) 用意:一个工厂生产一系列产品
Head First 设计模式 (四) 工厂模式(factory pattern) C++实现
Head.First设计模式中的The Factory Pattern(工厂模式)ppt
抽象工厂模式(Abstract Factory Pattern) 引入: 在前面介绍的两个创建型模式里面,我们解决的都是有关"new"的问题,用它们来避免显式指定类创建对象。我写的也非常简单易懂,相信看过的朋友们都应该对简单工厂...
java 创建型模式--工厂模式(Factory Pattern)示范代码demo,关于工厂模式可以查看我的博客 http://blog.csdn.net/u012930316/article/details/54599580
简单工厂模式实际上不属于23个GoF模式,但它可以作为GoF的工厂方法模式(Factory Method)的一个引导。 UML: <<Interface>> ConcreteProduct Creator Product ------------- interface() ...
2、工厂方法模式(Factory Method Pattern) 用意:让每个具体工厂生产具体产品
5、工厂方法模式FACTORY METHOD PATTERN 6、抽象工厂模式ABSTRACT FACTORY PATTERN 7、门面模式FACADE PATTERN 8、适配器模式ADAPTER PATTERN 9、模板方法模式TEMPLATE METHOD PATTERN 10、建造者模式BUILDER ...
NULL 博文链接:https://lym6520.iteye.com/blog/698013
备忘录模式(Memento Pattern) 策略模式(Strategy Pattern) 抽象工厂模式(Abstract Factory Pattern) 代理模式(Proxy Pattern) 单例模式(Singleton Pattern) 迭代器模式(Iterator Pattern) 访问者模式(Visitor ...
工厂模式(Factory Pattern) 抽象工厂模式(Abstract Factory Pattern) 单例模式(Singleton Pattern) 建造者模式(Builder Pattern) 原型模式(Prototype Pattern) 2. 结构型模式 适配器模式(Adapter ...
抽象工厂模式(Abstract Factory Pattern):提供一个创建一系列相关或相互依赖对象的接口,而无须指定它们具体的类。抽象工厂模式又称为Kit模式,属于对象创建型模式。
NULL 博文链接:https://jacky-dai.iteye.com/blog/2294531
NULL 博文链接:https://lym6520.iteye.com/blog/701742
工厂模式(Factory Pattern)是 Java 中最常用的设计模式之一。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。 在工厂模式中,我们在创建对象时不会对客户端暴露创建逻辑,并且是通过使用一个...
抽象工厂模式[ABSTRACT FACTORY PATTERN] 门面模式[FACADE PATTERN] 适配器模式[ADAPTER PATTERN] 模板方法模式[TEMPLATE METHOD PATTERN] 建造者模式[BUILDER PATTERN] 策略模式 代理模式 单例模式 多例模式 工厂...
它们都是由不同的厂家生产的,这就是工厂方法模式(FactoryMethod)与前面所说的简单工厂模式(SimpleFactory)的差别。 实例: 多文档系统。我已经用C#的源码编程了:请下载Factory Method Patter.rar
今天小编就为大家分享一篇关于PHP设计模式之工厂模式(Factory Pattern)的讲解,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
简单工厂模式(Simple Factory Pattern) .net简单工厂模式实例源代码