- 1、本文档共10页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
软件工程
第16讲:设计模式阳王东设计模式的概念主要的设计模式本讲主题粘贴和复制文件编辑的复用01公用函数和过程代码的复用02设计模式设计方法的复用04组件功能的复用03框架和体系结构解决方案的复用05复用的层次桥梁设计住宅户型设计建筑模式01武侠剧模式韩国爱情剧模式香港警匪片模式电影剧情模式02模式的概念0102模式是一种软件设计方法模式是对一种问题切实可行的解决方案模式是对一种设计思想的继承设计模式的概念模式名称所要解决的问题解决的方法解决的效果设计模式的基本组成要素软件设计模式010203040506接口化:基于接口编程动态性:动态可配置泛型化:不局限特定类型可扩展:方便扩展功能规则化:便于组合简单性:使实现简单设计模式遵循的基本原则03命令模式解析模式侦听者模式状态模式行为模式02适配器模式桥接模式门面模式装饰模式结构模式01工厂模式构造模式原型模式单例模式创建模式设计模式分类工厂模式门面模式装饰模式单例模式适配器模式侦听者模式主要设计模式子类定义父类定义接口定义类的定义和调用简单工厂方法注入式工厂方法工厂类工厂模式工厂模式(续)定义工厂方法所创建对象的接口Product实现Product声明的接口ConcreteProduct声明返回类型为Product的对象。同时,Creator有可能定义返回默认ConcreteProduct的工厂方法的默认实现。可能调用工厂方法创建产品对象Creator覆盖工厂方法,返回ConcreteProduct的一个实例。ConcreteCreator有较多业务组件构建一个门面类,通过访问该门面类的方法来访问各种业务组件业务逻辑组件的访问为了增加系统的灵活性,把功能细分为小类实现划线类、填色类、缩放类、旋转类、移动类提供一个统一的绘图类来调用所有绘图的小类进行绘图操作实例(绘图)门面模式门面模式(续)了解对一个请求具体响应的子系统类。将Client的请求委派给相应的子系统对象。subsystemclasses实现子系统的功能。处理Fa?ade对象分配的工作。不了解Fa?ade的信息,即不包含Fa?ade的引用。FacadeClient通过向Fa?ade发送请求来与子系统交互。Fa?ade将请求转发给相应的子系统对象。尽管实际上是子系统对象完成工作,Fa?ade有可能做接口之间的转换工作。使用Fa?ade的Client无需直接访问子系统对象。协作装饰模式避免继承的复杂性增加功能扩展的灵活性数据流处理类装饰模式(续)ClassabstractStreamDecoratorextendsStream{protectedStreamstr;publicvoidStreamDecorator(Streamstr){this.str=str;}}ClassabstractCompressDecoratorextendsStreamDecorator{publicvoidHandleBufferFull(){compress();str.HandleBufferFull();}ClassabstractAsciiDecoratorextendsStreamDecorator{publicvoidHandleBufferFull(){Ascii();str.HandleBufferFull();}
文档评论(0)