设计模式培训资料_第1页
设计模式培训资料_第2页
设计模式培训资料_第3页
设计模式培训资料_第4页
已阅读5页,还剩12页未读 继续免费阅读

下载本文档

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

文档简介

1、设计模式(Design Patterns)目的了解 23 种设计模式掌握常用几种设计模式设计模式简介最早提出“设计模式”概念的是建筑设计大师亚力山大Alexander。在 1970年他的建筑的永恒之道 里描述了投计模式的发现,因为它已经存在了千百年之久,而现代才被通过大量的研究而被发现。在建筑的永恒之道里这样描述:模式是一条由三个部分组成的通用规则:它表示了一个特定环境、一类问题和一个解决方案之间的关系。每一个模式描述了一个不断重复发生的问题,以及该问题解决方案的核心设计。尽管亚力山大的著作是针对建筑领域的,但他的观点实际上适用于所有的工程设计领域, 其中也包括软件设计领域。 “软件设计模式”

2、 ,这个术语是在 1990 年代由 Erich Gamma 等人从建筑设计领域引入到计算机科学中来的。目前主要有 23 种。创建型创建对象时,不再由我们直接实例化对象;而是根据特定场景,由程序来确定创建对象的方式,从而保证更大的性能、更好的架构优势。? 单例模式 (Singleton)? 构建模式 (Builder)? 原型模式 (Prototype)? 简单工厂模式 (Simple Factory)? 抽象工厂模式 (Abstract Factory)? 工厂方法模式 (Factory Method)结构型将类和对象组合起来,以构成更加复杂的结构 ,帮助开发人员将简单对象组合在一起形成更加复

3、杂的结构 ,处理对象与对象之间的各种关系? 代理模式 (Proxy)? 适配器模式 (Adapter)? 装饰者模式 (Decorator)? 组合模式 (Composite)? 桥连接模式 (Bridge)? 蝇量模式 (Flyweight)?外观模式 (Facade)行为型用于帮助系统间各对象的通信,以及如何控制复杂系统中流程。? 策略模式 (Strategy)? 状态模式 (State)? 责任链模式 (Chain of Responsibility)? 解释器模式 (Interpreter)? 命令模式 (Command)? 观察者模式 (Observer)? 备忘录模式 (Memen

4、to)? 迭代器模式 (Iterator)? 模板方法模式 (Template Method)? 访问者模式 (Visitor)? 中介者模式 (Mediator)23 种设计模式经典文档 -23种设计模式.docx常见设计模式介绍1. 单例模式 (singleton)有些时候,允许自由创建某个类的实例没有意义,还可能造成系统性能下降。如果一个类始终只能创建一个实例,则这个类被称为单例类,这种模式就被称为单例模式。单例模式主要有如下两个优势:1) 减少创建 Java 实例所带来的系统开销2) 便于系统跟踪单个 Java 实例的生命周期、实例状态等。2. 简单工厂 (StaticFactory

5、Method)简单工厂模式是由一个工厂对象决定创建出哪一种产品类的实例。简单工厂模式是工厂模式家族中最简单实用的模式, 可以理解为是不同工厂模式的一个特殊实现。A 实例调用 B 实例的方法,称为 A 依赖于 B。如果使用 new 关键字来创建一个 B 实例(硬编码耦合),然后调用 B 实例的方法。 一旦系统需要重构:需要使用 C 类来代替 B 类时,程序不得不改写 A 类代码。而用工厂模式则不需要关心 B 对象的实现、创建过程。使用简单工厂模式的优势:让对象的调用者和对象创建过程分离,当对象调用者需要对象时, 直接向工厂请求即可。 从而避免了对象的调用者与对象的实现类以硬编码方式耦合,以提高系

6、统的可维护性、可扩展性。 工厂模式也有一个小小的缺陷:当产品修改时,工厂类也要做相应的修改。3. 工厂方法 (Factory Method) 和抽象工厂 (Abstract Factory)如果我们不想在工厂类中进行逻辑判断, 程序可以为不同产品类提供不同的工厂,不同的工厂类和产不同的产品。 当使用工厂方法设计模式时, 对象调用者需要与具体的工厂类耦合,如:使用简单工厂类, 需要在工厂类里做逻辑判断。 而工厂类虽然不用在工厂类做判断。但是带来了另一种耦合: 客户端代码与不同的工厂类耦合。 为了解决客户端代码与不同工厂类耦合的问题。 在工厂类的基础上再增加一个工厂类,该工厂类不制造具体的被调用对

7、象,而是制造不同工厂对象。如:4. 外观模式 (Facade)随着系统的不断改进和开发, 它们会变得越来越复杂, 系统会生成大量的类,这使得程序流程更难被理解。外观模式可为这些类提供一个简化的接口,从而简化访问这些类的复杂性。外观模式( Facade)也被称为正面模式、门面模式,这种模式用于将一组复杂的类包装到一个简单的外部接口中。5. 代理模式 (Proxy)代理模式的作用是: 为其他对象提供一种代理以控制对这个对象的访问。 在某些情况下, 一个客户不想或者不能直接引用另一个对象, 而代理对象可以在客户端和目标对象之间起到中介的作用。代理模式一般涉及到的角色有:抽象角色:声明真实对象和代理对象的共同接口;代理角色: 代理对象角色内部含有对真实对象的引用, 从而可以操作真实对象,同时代理对象提供与真实对象相同的接口以便在任何时刻都能代替真实对象。同时,代理对象可以在执行真实对象操作时,附加其他的操作,相当于对真实对象进行封装。真实角色:代理角色所代表的真实对象,是我们最终要引用的对象。看代码6. 桥接模式 (Bridge)由于实际的需要, 某个类具有两个以上的维度变化,如果只是使用继承

温馨提示

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

评论

0/150

提交评论