软件工程设计模式.ppt_第1页
软件工程设计模式.ppt_第2页
软件工程设计模式.ppt_第3页
软件工程设计模式.ppt_第4页
软件工程设计模式.ppt_第5页
已阅读5页,还剩14页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

软 件 工 程 第16讲:设计模式,阳王东 Email:,本讲主题,设计模式的概念 主要的设计模式,复用的层次,文件编辑的复用 粘贴和复制 代码的复用 公用函数和过程 功能的复用 组件 设计方法的复用 设计模式 解决方案的复用 框架和体系结构,模式的概念,建筑模式 桥梁设计 住宅户型设计 电影剧情模式 武侠剧模式 韩国爱情剧模式 香港警匪片模式,软件设计模式,设计模式的概念 模式是一种软件设计方法 模式是对一种问题切实可行的解决方案 模式是对一种设计思想的继承 设计模式的基本组成要素 模式名称 所要解决的问题 解决的方法 解决的效果,设计模式遵循的基本原则,接口化:基于接口编程 动态性:动态可配置 泛型化:不局限特定类型 可扩展:方便扩展功能 规则化:便于组合 简单性:使实现简单,设计模式分类,创建模式 工厂模式 构造模式 原型模式 单例模式 结构模式 适配器模式 桥接模式 门面模式 装饰模式 行为模式 命令模式 解析模式 侦听者模式 状态模式,主要设计模式,工厂模式 门面模式 装饰模式 单例模式 适配器模式 侦听者模式,工厂模式,类的定义和调用 子类定义 父类定义 接口定义 工厂类 简单工厂方法 注入式工厂方法,工厂模式(续),Product 定义工厂方法所创建对象的接口 ConcreteProduct 实现Product声明的接口 Creator 声明返回类型为Product的对象。同时,Creator有可能定义返回默认ConcreteProduct的工厂方法的默认实现。 可能调用工厂方法创建产品对象 ConcreteCreator 覆盖工厂方法,返回ConcreteProduct的一个实例。,门面模式,业务逻辑组件的访问 有较多业务组件 构建一个门面类,通过访问该门面类的方法来访问各种业务组件 实例(绘图) 为了增加系统的灵活性,把功能细分为小类实现 划线类、填色类、缩放类、旋转类、移动类 提供一个统一的绘图类来调用所有绘图的小类进行绘图操作,门面模式(续),Facade 了解对一个请求具体响应的子系统类。 将Client的请求委派给相应的子系统对象。 subsystem classes 实现子系统的功能。 处理Faade对象分配的工作。 不了解Faade的信息,即不包含Faade的引用。 协作 Client通过向Faade发送请求来与子系统交互。Faade将请求转发给相应的子系统对象。尽管实际上是子系统对象完成工作,Faade有可能做接口之间的转换工作。 使用Faade的Client无需直接访问子系统对象。,装饰模式,避免继承的复杂性 增加功能扩展的灵活性 数据流处理类,装饰模式(续),Class abstract StreamDecorator extends Stream protected Stream str; public void StreamDecorator(Stream str) this.str=str; Class abstract CompressDecorator extends StreamDecorator public void HandleBufferFull() compress(); str. HandleBufferFull(); Class abstract AsciiDecorator extends StreamDecorator public void HandleBufferFull() Ascii(); str. HandleBufferFull(); ,单例模式,确保一个类仅生成一个实例,并为之提供一个全局的访问点 配置类 class Singleton public: static Singleton* Instance(); protected: Singleton(); private: static Singleton* _instance; ; 相应的实现: Singleton* Singleton:_instance = 0; Singleton* Singleton:Instance () if (_instance = 0) _instance = new Singleton; return _instance; ,适配器模式,对多种数据库的一致访问 定义一个访问接口 实现该接口

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论