网站大量收购独家精品文档,联系QQ:2885784924

浅谈设计模式概要.pptx

  1. 1、本文档共19页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
浅谈设计模式 2015.12.30 概念 设计模式不是基于理论发明的。相反,总是先有问题场景,再基于需求和情景不断演化设计方案,最后把一些方案标准化成“模式”。 《设计模式》、 1995 、GOF、23… 设计模式(Design pattern)是什么? 1995年出版的《设计模式: 可复用面向对象软件的基本元素》中,第一次归纳出了23种基本设计模式。这本书讲了23种主要的模式,包括:抽象工厂、适配器、外观模式等。 作者: GOF。 Gangs Of Four 。它的原意是“四人帮”。这四个作者:Erich Gamma,Richard Helm,Ralph Johnson,John Vlissides。 根本原因是为了代码复用,增加可维护性。 设计模式是“框架”,OOD(面向对象编程) 原则是“规范” 设计模式·为什么要使用? 现在有许多设计原则,但是最基本的,就是SOLID(缩写),这五项原则。 S = 单一责任原则 O = 开闭原则 L = Liscov替换原则(里氏替换原则) I = 接口隔离原则 D = 依赖倒置原则 单一责任原则:一个类有且只有一个职责。一个类可以包含很多方法,但目的都是一个。 开闭原则:软件实体(类,模块,函数等)应该对扩展开放,对修改关闭。 里氏替换原则:使用基类引用的函数必须能够使用派生类而无须了解派生类 鸟 + 飞行() 麻雀 鸟 + 飞行() 麻雀 鸵鸟 接口隔离原则 :客户端不应该依赖它不需要的接口,接口实现自己的职责,且清晰明确,易于理解,具有可复用性 依赖倒置原则:高层模块不应该依赖低层模块,二者都应该依赖其抽象;抽象不应该依赖细节;细节应该依赖抽象。 类的名称 类的特征,(字段\属性) 类的操作,(方法\行为) +:代表public - :代表private #:代表protected 接口的名称 接口方法 继承关系:空心三角形+实线 :空心三角形+虚线 :实线箭头 聚合表示一种弱 的拥有关系 合成表示一种强 的拥有关系 设计模式分三种类型,共23种 创建型模式:单例模式、抽象工厂模式、建造者模式、工厂模式、原型模式。 设计模式·类型? 结构型模式:适配器模式、桥接模式、装饰模式、组合模式、外观模式、享元模式、代理模式。 行为型模式:模版方法模式、命令模式、迭代器模式、观察者模式、中介者模式、备忘录模式、解释器模式(Interpreter模式)、状态模式、策略模式、职责链模式(责任链模式)、访问者模式。 举例 可以在不更换开关的情况下换掉灯泡,也可以在不接触灯泡或者风扇的情况下更换开关,甚至可以在不接触开关的情况下,把灯泡和风扇的开关互换。 是电线以及其他的电工手段把电灯/电风扇与开关连接起来。 我们可以把这概括为沟通不同系统的桥梁。 基本思想是,一个事物不能直接连接另一个事物。通过一些桥梁或接口连接起来。 在软件世界里,我们称之为“松耦合”。 各种开关可以都基于一个开关类,那么灯泡和电扇该怎么做?他们并不是同一种东西。 大体上讲,灯泡和电扇它们都算是电器,可以用一个接口“I 电器”来抽象它们。 生活中有电线,这里我们用封装。 开关只需知道自己可以开/关某个电器(I 电器) 即一开始的开关类有一个I 电器的实例 把抽象和实现解耦,使得它们可以独立地变化 Abstraction是基础的开关基类, RefinedAbstraction是某个具体的开关类(花式开关和正常开关), Implementor是电器接口, ConcreteImplementorA和ConcreteImplementorB是灯泡类。 我们能创建一个新模式吗?有可能吗? 当然可以。设计模式并不是被科学家发明和创造的东西。他们只是被“发现”而已。也就是说,对任何一个普通的问题场景,肯定会有一些好的设计方案。如果我们能识别出一个能解决某个新问题的面向对象设计,那我们就定义了一个新的设计模式。 Thank you

文档评论(0)

jiayou10 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

版权声明书
用户编号:8133070117000003

1亿VIP精品文档

相关文档