设计模式-考点全覆盖之无敌学霸版.pdf

设计模式-考点全覆盖之无敌学霸版.pdf

ID:52441567

大小:818.33 KB

页数:12页

时间:2020-03-27

设计模式-考点全覆盖之无敌学霸版.pdf_第1页
设计模式-考点全覆盖之无敌学霸版.pdf_第2页
设计模式-考点全覆盖之无敌学霸版.pdf_第3页
设计模式-考点全覆盖之无敌学霸版.pdf_第4页
设计模式-考点全覆盖之无敌学霸版.pdf_第5页
资源描述:

《设计模式-考点全覆盖之无敌学霸版.pdf》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、2013年版余斌出品,你说是不是精品软件架构与设计模式重点整理,各位努力复习!设计模式部分:创建型模式:1、工厂方法:别名:虚拟构造器问题:定义一个创建对象的接口,但让子类决定实例化哪个类。工厂方法使一个类实例化推迟到子类。即父类负责创建,子类负责生成。结构:参与者:抽象产品、具体产品、抽象工厂、具体工厂优点:1)基于工厂角色和产品角色的多态性设计是工厂方法模式的关键。它能够使工厂可以自主确定创建何种产品对象,而如何创建这个对象的细节则完全封装在具体工厂内部。2)使用工厂方法模式的另一个优点是在系统中加入新产品时,无需修改抽象工厂和抽象产品提供的接口,无需修改客户端,

2、也无需修改其它的具体工厂和具体产品,而只要添加一个具体工厂和具体产品就可以。缺点:在添加新产品时,需要编写新的具体产品类,而且还要提供与之对应的具体工厂类,当两者都比较简单时,系统会有相对额外的开销。在下面情况可以使用工厂方法模式:1)类不知道自己要创建哪一个对象。2)类用它的子类来指定创建哪个对象。3)客户需要清楚知道创建了哪一个对象。实现:1)父类是否提供缺省的实现2)工厂方法的参数3)语言特有的变式和问题4)使用模板避免子类化相关模式:Abstractfactory、Prototype例子:12013年版余斌出品,你说是不是精品2、抽象工厂模式:别名:Kit模式

3、定义:提供一个创建一系列相关或相互依赖对象的接口,而无需指定它们具体的类结构:AbstractFactoryClient+createProductA()+createProductB()AbstractProductAConcreteFactory1ConcreteFactory2+createProductA()+createProductA()+createProductB()+createProductB()ProductA1ProductA2AbstractProductBProductB1ProductB2参与者:抽象工厂、具体工厂、抽喜产品、具体产品、客

4、户类优点:1)工厂把产品的类型封装起来,分离了具体的类2)易于变换产品族3)保证不同族之间的产品相互不会碰撞,即保证产品的一致性缺点:1)工厂对象的工厂方法数目对应产品种类数目,增加新的产品种类比较困难,要影响到工厂的基类,进而影响到所有的子类。实现:1)每个产品族往往只需要一个工厂对象就可以了2)对于产品族比较多的情况,可以使用原型模式来实现这些工厂,而不必对于每一22013年版余斌出品,你说是不是精品个具有细微差别的产品族都是用一个具体工厂类3)针对其缺点,通过参数化技术提高工厂的适应能力和扩展性相关模式:FactoryMethod、Prototype、Singl

5、eton多个factorymethod合在一起,factorymethod一定是virtual的例子:3、原型模式:定义:用原型实例指定创建对象的种类,并且通过复制这些原型创建新的对象。动机:以一个已有的对象作为原型,通过它来创建新的对象。在增加新的对象的时候,新对象的细节创建工作有自己来负责,从而使新对象的创建过程与框架隔离开来。结构:参与者:抽象原型类、具体原型类、客户类在下面情况可以使用原型模式:1)当产品的创建过程要独立于系统时2)当产品的类型是在runtime时被指定的情况下3)避免创建一个与产品层次平行的工厂层次时4)当产品类的实例只能是几种确定的不同实例

6、状态中的一种时5)当系统需要保存对象的状态时32013年版余斌出品,你说是不是精品优点:1)简化对象的创建过程,提高新实例的创建效率2)动态添加或减少产品类3)简化创建结构4)可使用深克隆方式保存对象的状态缺点:1)需要为每一个类配备一个克隆方法2)实现深克隆是需要编写较为复杂的代码评估:1)在运行时添加或删除产品2)降低系统中类的数目3)动态的配置一个应用程序类4)要求:每一个产品类都必须实现Clone方法5)对于C++语言特别有意义:C++的类不是first-classobjects实现:1)使用一个原型管理器2)实现克隆操作3)初始化克隆相关模式:Prototy

7、pe、AbstractFactory例子:4、单例模式:定义:确保某一个类只有一个实例,而且自行实例化并向整个系统提供这个实例。要点有三个:一是某个类只能有一个实例;二是它必须自行创建这个实例;三是它必须自行向整个系统提供这个实例。动机:对于系统中的某些类来说,只有一个实例很重要。一个更好的解决办法是让类自身负责保存它的唯一实例。结构:42013年版余斌出品,你说是不是精品参与者:单例评估:1)对单一实例的控制权2)简化的命名空间3)允许子类化4)允许可变数量的实例5)比类操作更具灵活性6)这种思想比较适用于Object-Based中的许多情形实现:

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。