专题2设计模式.ppt
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_05.gif)
《专题2设计模式.ppt》由会员分享,可在线阅读,更多相关《专题2设计模式.ppt(51页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、设计模式概述设计模式概述GoF 的的设计模式设计模式在面向对象的编程中,软件编程人员更加注在面向对象的编程中,软件编程人员更加注重以前的代码的重用性和可维护性。重以前的代码的重用性和可维护性。设计模式使人们可以更加简单方便地复用成设计模式使人们可以更加简单方便地复用成功的设计和体系结构。将已证实的技术表述功的设计和体系结构。将已证实的技术表述成设计模式也会使新系统开发者更加容易理成设计模式也会使新系统开发者更加容易理解其设计思路。解其设计思路。一个模式有四个基本要素一个模式有四个基本要素:1.模式名称(模式名称(pattern name)一个助记名,一个助记名,它用一两个词来描述模式的问题、解
2、决它用一两个词来描述模式的问题、解决方案和效果。方案和效果。2.问题问题(problem)描述了应该在何时使用描述了应该在何时使用模式。模式。3.解决方案解决方案(solution)描述了设计的组成描述了设计的组成成分,它们之间的相互关系及各自的职成分,它们之间的相互关系及各自的职责和协作方式。责和协作方式。4.效果效果(consequences)描述了模式应用的描述了模式应用的效果及使用模式应权衡的问题。效果及使用模式应权衡的问题。A.创建模式创建模式设计模式之设计模式之Factory(工厂方法和抽象工厂工厂方法和抽象工厂)提供一个提供一个创建一系列相关或相互依建一系列相关或相互依赖对象的象
3、的接口接口,而无需指定它而无需指定它们具体的具体的类。设计模式之设计模式之BuilderBuilder:将一个复杂对象的构建与它的表示将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表分离,使得同样的构建过程可以创建不同的表示。示。Prototype:用原型实例指定创建对象的种类,用原型实例指定创建对象的种类,并且通过拷贝这个原型来创建新的对象。并且通过拷贝这个原型来创建新的对象。B.结构模式结构模式设计模式之设计模式之Proxy为其他对象提供一个代理以控制对这个对象的为其他对象提供一个代理以控制对这个对象的访问。访问。设计模式之设计模式之Adapter使得原本由于接口不兼
4、容而不能一起工作的那使得原本由于接口不兼容而不能一起工作的那些类可以一起工作。些类可以一起工作。设计模式之设计模式之Composite将对象组合成树形结构以表示将对象组合成树形结构以表示“部分部分-整体整体”的的层次结构。它使得客户对单个对象和复合对象层次结构。它使得客户对单个对象和复合对象的使用具有一致性。的使用具有一致性。C.行为模式行为模式设计模式之设计模式之Template 定义一个操作中的算法的骨架,而将一些步定义一个操作中的算法的骨架,而将一些步骤延迟到子类中。骤延迟到子类中。Template Method使得使得子类可以不改变一个算法的结构即可重定义子类可以不改变一个算法的结构即
5、可重定义该算法的某些特定步骤。该算法的某些特定步骤。设计模式之设计模式之ObserverObserver:定义对象间的一种一对多的依定义对象间的一种一对多的依赖关系赖关系,以便当一个对象的状态发生改变时以便当一个对象的状态发生改变时,所有依赖于它的对象都得到通知并自动刷新。所有依赖于它的对象都得到通知并自动刷新。设计模式设计模式-创建型模式创建型模式例例迷宫游戏最初代码:例子工厂方法工厂方法(Factory Method)目的目的:通过定义一个创建产品的接口通过定义一个创建产品的接口,让让Creator的子类具体决定实例化哪个产的子类具体决定实例化哪个产品类品类.即将即将产品的实例化延迟到子类
6、产品的实例化延迟到子类.结构结构:实现实现:无参工厂方法无参工厂方法参数化工厂方法参数化工厂方法Virtual Product*MakeProduct(int ProductID);使用摸板类使用摸板类:Template Class SubCreator:public Creator virtual Product*MakeProduct()return new TheProduct;例子例子:工厂方法结构工厂方法结构抽象工厂抽象工厂(Abstract Factory)目的:目的:提供一个类,它定义了创建一系列产品提供一个类,它定义了创建一系列产品的接口函数;在这个类的派生类中,重写某些的接口
7、函数;在这个类的派生类中,重写某些接口函数,以便生成新产品系列。接口函数,以便生成新产品系列。结构结构:优点和缺点:优点和缺点:易于改变产品系列易于改变产品系列难以增加新种类的产品难以增加新种类的产品例:例:抽象工厂抽象工厂生成器生成器(Builder)目的:将一个复杂对象的构建与它的表目的:将一个复杂对象的构建与它的表示分离示分离,使得同样的构建过程可以创建不使得同样的构建过程可以创建不同的表示同的表示.工作原理:工作原理:Builder 模式是一步一步创建模式是一步一步创建一个复杂的对象一个复杂的对象,它允许用户可以只通过它允许用户可以只通过指定复杂对象的类型和内容就可以构建指定复杂对象的
8、类型和内容就可以构建它们它们.用户不知道内部的具体构建细节用户不知道内部的具体构建细节.为何使用为何使用?是为了将构建复杂对象的过程和是为了将构建复杂对象的过程和它的部件解耦它的部件解耦.注意注意:是解耦过程是解耦过程和部件和部件.如何使用如何使用?首先假设一个复杂对象是由多个首先假设一个复杂对象是由多个部件组成的部件组成的,Builder 模式是把复模式是把复杂对象的创建和部件的创建分别杂对象的创建和部件的创建分别开来开来,分别用分别用Builder 类和类和Director 类来表示类来表示.结构结构优点:优点:易于改变复杂产品的内部表示易于改变复杂产品的内部表示易于控制构造过程易于控制构
9、造过程例例1:例例2:生成器生成器原型原型(Prototype)目的:目的:Prototype 模式允许一个对象再创模式允许一个对象再创建另外一个可定制的对象,根本无需知建另外一个可定制的对象,根本无需知道任何如何创建的细节。道任何如何创建的细节。工作原理工作原理:通过将一个原型对象传给那个通过将一个原型对象传给那个要发动创建的对象,这个要发动创建的要发动创建的对象,这个要发动创建的对象通过请求原型对象拷贝它们自己来对象通过请求原型对象拷贝它们自己来实施创建。实施创建。结构结构:优点:优点:减少子类减少子类 运行时可改变应用的产品运行时可改变应用的产品例例1:原型原型Singleton(单态单
10、态)定义定义:Singleton 模式主要作用是保证在应用程模式主要作用是保证在应用程序中,一个序中,一个Class 只有一个实例存在。一只有一个实例存在。一个实例表示是单线程,在很多操作中,个实例表示是单线程,在很多操作中,比如建立目录比如建立目录 数据库连接都需要单线程数据库连接都需要单线程操作,操作,Singleton 模式经常用于控制对系模式经常用于控制对系统资源的控制统资源的控制,public class Singleton private:static Singleton*instance;public:static Singleton*getInstance()if(instan
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 专题 设计 模式
![提示](https://www.taowenge.com/images/bang_tan.gif)
限制150内