定义:定义一个用于创建对象的接口,让子类决定实例化哪一个类,工厂方法使一个类的实例化延迟到其子类。
类型:创建类模式
类图:
工厂模式:
首先需要说一下工厂模式。工厂模式根据抽象程度的不同分为三种:简单工厂模式(也叫静态工厂模式)、本文所讲述的工厂方法模式、以及抽象工厂模式。工厂模式是编程中经常用到的一种模式。它的主要优点有:
l 可以使代码结构清晰,有效地封装变化。在编程中,...
分类:
其他好文 时间:
2015-06-14 09:25:53
阅读次数:
113
简单工厂模式简单工厂可以根据输入的数据不同,调用不同的子类生产不同的产品实例。而返回值,是这些产品的接口类型或父类类型。关键词:抽象产品 抽象工厂模式,则在简单工厂模式的基础上进行了延伸,不仅有抽象产品,而且有抽象工厂。关键词:抽象工厂,抽象产品。 总结,抽象工厂模式,不仅实现了对产品的抽象管理,而...
分类:
其他好文 时间:
2015-06-13 21:39:09
阅读次数:
190
背景 ? ? 简单工厂、工厂方法模式,接着必须学习抽象工厂模式 1、使用意图? ? ? ? 扩展工厂方法模式 2、生活实例 ? ? 淘宝电影、猫眼电影都能为我们生成当天各种电影票 3、Java 例子(框架、JDK 、JEE) ...
分类:
其他好文 时间:
2015-06-13 15:49:53
阅读次数:
169
1、什么是设计模式: 引用百度:设计模式(Design pattern)是一套被反复使用、多数人知晓的、经过分类编目的、代码设计经验的总结。使用设计模式是为了可重用代码、让代码更容易被他人理解、保证代码可靠性。 毫无疑问,设计模式于己于他人于系统都是多赢的;设计模式使代码编制真正工程化;设计模式是....
分类:
其他好文 时间:
2015-06-12 23:52:51
阅读次数:
151
主要类图 GameViewFactory: 简单工厂,创建不同难度视图 // 观察者 GameViewObject: ?游戏窗口基类 GameViewFour,GameViewFive,GameViewSix 分别是四格,五格,六格视图 UIView则是单个小格子 Game:游戏流程类 ...
分类:
移动开发 时间:
2015-06-10 06:37:33
阅读次数:
405
简单工厂模式存在一个缺陷即违反了开闭原则。工厂方法模式避免了只一点。
开闭原则定义:一个软件实体应当对扩展开放,对修改关闭。及软件实体应
尽量在不修改原有代码的情况下进行扩展。
开闭原则:http://blog.csdn.net/lovelion/article/details/7537584
工厂方法模式概述:
工厂父类负责定义创建产品对象的公共接口,而工厂子类则负责生成具体的...
将对象的创建和使用分离,让用户在使用对象时无须关心对象的创建细节,
从而降低系统的耦合度,让设计方案更易于修改和扩展使用时,客户端无需
知道所要创建对象的类名,只需知道对应参数即可。
如图:要获得水果,只需要通过向水果工厂传递相应的参数即可获得相应的水果对象。
简单工厂模式包含四个角色:工厂角色、抽象产品角色、具体产品角色和客户端。
具体产品类:将需要创建的各种不...
学习来源: C#设计模式,刘伟 创建型模式描述如何将对象的创建和使用分离,让用户在使用对象时无须关心对象的创建细节,从而降低系统的耦合度,让设计方案更易于修改和扩展. 引言: 简单工厂(静态工厂) 1, 模式适用环境 工厂类负责创建的对象比较少,由于创建的对象较少 ,不会造成工厂方法中的业务逻辑太过...
分类:
其他好文 时间:
2015-06-09 19:19:39
阅读次数:
134
学习正式的设计模式前,先来个开胃菜,即简单工厂模式。下面将利用简单工厂模式设计一个计算器小程序:一、运算基类(Operation)1 public abstract class Operation2 {3 public double NumA { set; get; ...
分类:
其他好文 时间:
2015-06-08 13:09:50
阅读次数:
131
学习过简单工厂模式,感觉很好用。在创建对象时,可以将复杂的初始化操作从客户端分离出来,简化客户端代码。大大的减少了代码修改的难度。而且可以通过参数不同,创建不同的对象。
但是简单工厂模式也有一些弊端,违背了开放--封闭原则。即如果我们增加了一个产品,对应的工厂也要进行修改,即switch---case中要新增加一些分支条件,不利于扩展。所以就有了下面的工厂方法模式:
工厂方法模...
分类:
其他好文 时间:
2015-06-08 09:52:05
阅读次数:
106