一些基本的设计模式综述

设计模式分为三种类型,共23类。   
创建型模式:单件模式、抽象工厂模式、建造者模式、工厂方法、原型模式。
   
结构型模式:适配器模式、桥接模式、装饰模式、组合模式、外观模式、享元模式、代理模式。  
 
行为型模式:模版方法模式、命令模式、迭代器模式、观察者模式、中介者模式、备忘录模式、解释器模式、状态模式、策略模式、职责链模式、访问者模式。  
 
   
Abstract Factory(抽象工厂模式):提供一个创建一系列相关或相互依赖对象的接口,而无需指定它们具体的类。

Adapter(适配器模式):将一个类的接口转换成客户希望的另外一个接口。A d a p t e r模式使得原本由于接口不兼容而不能一起工作的那些类可以一起工作。   

Bridge(桥接模式):将抽象部分与它的实现部分分离,使它们都可以独立地变化。  
 
Builder(建造者模式):将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。
   
Chain of Responsibility(职责链模式):为解除请求的发送者和接收者之间耦合,而使多个对象都有机会处理这个请求。将这些对象连成一条链,并沿着这条链传递该请求,直到有一个对象处理它。   

Command(命令模式):将一个请求封装为一个对象,从而使你可用不同的请求对客户进行参数化;对请求排队或记录请求日志,以及支持可取消的操作。
   
Composite(组合模式):将对象组合成树形结构以表示“部分-整体”的层次结构。它使得客户对单个对象和复合对象的使用具有一致性。   

Decorator(装饰模式):动态地给一个对象添加一些额外的职责。就扩展功能而言, 它比生成子类方式更为灵活。
   
Facade(外观模式):为子系统中的一组接口提供一个一致的界面, F a c a d e模式定义了一个高层接口,这个接口使得这一子系统更加容易使用。  
 
Factory Method(工厂模式):定义一个用于创建对象的接口,让子类决定将哪一个类实例化。Factory Method使一个类的实例化延迟到其子类。  
 
Flyweight(享元模式):运用共享技术有效地支持大量细粒度的对象。
   
Interpreter(解析器模式):给定一个语言, 定义它的文法的一种表示,并定义一个解释器, 该解释器使用该表示来解释语言中的句子。   

Iterator(迭代器):提供一种方法顺序访问一个聚合对象中各个元素, 而又不需暴露该对象的内部表示。  
 
Mediator(中介模式):用一个中介对象来封装一系列的对象交互。中介者使各对象不需要显式地相互引用,从而使其耦合松散,而且可以独立地改变它们之间的交互。   

Memento(备忘录模式):在不破坏封装性的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态。这样以后就可将该对象恢复到保存的状态。
   
Observer(观察者模式):定义对象间的一种一对多的依赖关系,以便当一个对象的状态发生改变时,所有依赖于它的对象都得到通知并自动刷新。   

Prototype(原型模式):用原型实例指定创建对象的种类,并且通过拷贝这个原型来创建新的对象。   

Proxy(代理模式):为其他对象提供一个代理以控制对这个对象的访问[1]。   

Singleton(单例模式):保证一个类仅有一个实例,并提供一个访问它的全局访问点。
   
State(状态模式):允许一个对象在其内部状态改变时改变它的行为。对象看起来似乎修改了它所属的类。
   
Strategy(策略模式):定义一系列的算法,把它们一个个封装起来, 并且使它们可相互替换。本模式使得算法的变化可独立于使用它的客户。   

Template Method(模板方法模式):定义一个操作中的算法的骨架,而将一些步骤延迟到子类中。Template Method使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤。  
 
Visitor(访问者模式):表示一个作用于某对象结构中的各元素的操作。它使你可以在不改变各元素的类的前提下定义作用于这些元素的新操作。转载自:http://www.cnblogs.com/zhuyp1015/archive/2012/09/30/2709358.html
时间: 2024-10-14 07:43:58

一些基本的设计模式综述的相关文章

课堂作业06——设计模式综述

设计模式综述 1.简单工厂模式 简单工厂模式中,有一个专门负责创建其他实例的类--工厂类,这个类可以动态地调用需要的类来完成相应的功能,只要传入一个正确参数即可.就像用户想要水果,但并不需要知道水果是如何创建的. 2.工厂方法模式 与简单工厂不同的是,工厂方法模式将工厂类负责的创建功能交给子类去做,因而增加了接口功能,将重点放在具体的类上.此模式的优点是方便增加功能,更加注重创建对象的细节,但缺点是类的个数会增加,使代码更不容易理解. 3.抽象工厂模式 抽象工厂模式是工厂方法的泛化版,这个工厂可

设计模式综述

1. 设计模式 设计模式(Design pattern)是一套被反复使用.多数人知晓的.经过分类编目的.代码设计经验的总结.使用设计模式是为了可重用代码.让代码更容易被他人理解.保证代码可靠性. 毫无疑问,设计模式于己于他人于系统都是多赢的,设计模式使代码编制真正工程化,设计模式是软件工程的基石,如同大厦的一块块砖石一样.      模式的经典定义:每个模式都描述了一个在我们的环境中不断出现的问题,然后描述了该问题的解决方案的核心,通过这种方式,我们可以无数次地重用那些已有的解决方案,无需再重复

综述:设计模式的分类及六大原则

一.设计模式的分类 总体来说设计模式分为三大类: 创建型模式,共五种:工厂方法模式.抽象工厂模式.单例模式.建造者模式.原型模式. 结构型模式,共七种:适配器模式.装饰器模式.代理模式.外观模式.桥接模式.组合模式.享元模式. 行为型模式,共十一种:策略模式.模板方法模式.观察者模式.迭代子模式.责任链模式.命令模式.备忘录模式.状态模式.访问者模式.中介者模式.解释器模式. 其实还有两类:并发型模式和线程池模式.用一个图片来整体描述一下: 二.设计模式的六大原则 1.开闭原则(Open Clo

设计模式开篇综述(Java)

设计原则是规范,设计模式是技巧.如果在项目中能够灵活运用这些基础知识,那么我相信一定会得到意想不到的收获. 接下来的时间里,我将继续学习设计模式,将对每一个设计模式从以下几点进行分析和学习,如有不妥当或者理解错误的地方,欢迎大家指正和批评: (1) 定义:描述该模式是什么,有什么样的作用: (2) 问题描述:该模式是针对什么样的问题而出现的,由开发中遇到的问题而引入: (3) 解决方案:给出合适的解决方案,进一步解释该模式的定义: (4) 结构图:根据定义,绘制相关栗子的UML结构图: (5)

【设计模式】【综述】

参考资料:<大话设计模式> PS:引用了很多书中的内容,特此标注出处. 面向对象思想是软件工程领域的一种哲学世界观,相比于更为直观的面向过程化,它处理问题的角度和方法都有些不同.而设计模式就相当于在这种世界观指导下而形成的方法论.通俗来说,就是当遇到了某种特定环境下的问题,设计模式提供了一种符合面向对象原则的处理办法,它是无数程序员经历了许久历练而总结出来的经验论,依循这些设计模式的思路,你可以对面向对象思想有更加深刻的理解,你可以对面向对象的设计原则有着更加深刻的把握,甚至于,你可以淡化设计

Map 综述(二):彻头彻尾理解 LinkedHashMap

摘要: HashMap和LinkedList合二为一即是LinkedHashMap.所谓LinkedHashMap,其落脚点在HashMap,因此更准确地说,它是一个将所有Entry节点链入一个双向链表LinkedList的HashMap.由于LinkedHashMap是HashMap的子类,所以LinkedHashMap自然会拥有HashMap的所有特性.比如,LinkedHashMap的元素存取过程基本与HashMap基本类似,只是在细节实现上稍有不同.当然,这是由LinkedHashMap

Java设计模式之观察者模式

综述 观察者模式(Observer Pattern)也叫做发布-订阅(Publish/Subscribe)模式.模型-视图(Model/View)模式.这个模式的一个最重要的作用就是解耦.也就是将被观察者和观察者进行解耦,使得他们之间的依赖性更小,甚至做到毫无依赖.在观察者模式中它定义了一种一对多的依赖关系,使得当每一个对象改变状态,则所有依赖于它的对象都会得到通知并被自动更新.下面就来看一下观察者模式的具体实现. 观察者模式实现 在这里我们假定一个场景,在一个图书管理系统中,现在有这么一个需求

Atitit.架构设计趋势 设计模式 ---微服务架构&#160;&#160;soa

Atitit.架构设计趋势 设计模式 ---微服务架构  soa 什么是微服务架构?1 .微服务与SOA的关系 :微服务架架构师面向服务架构(SOA)的一种特定实现1 微服务与康威定律2 微服务的一些设计 断路器 幂等2 <微服务设计>([英] 纽曼(Sam Newman))3 微服务架构与实践4 什么是微服务架构? Martin Fowler认为,微服务架构是一种独立部署的软件应用设计方式.这种架构方式没有准确的定义,但是在业务能力.自动部署.端对端的整合.对语言及数据的分散控制上有着共性.

两种高性能I/O设计模式(Reactor/Proactor)的比较

综述 这篇文章探讨并比较两种用于TCP服务器的高性能设计模式. 除了介绍现有的解决方案,还提出了一种更具伸缩性,只需要维护一份代码并且跨平台的解决方案(含代码示例),以及其在不同平台上的微调. 此文还比较了java.c#.c++对各自现有以及提到的解决方案的实现性能. 系统I/O 可分为阻塞型, 非阻塞同步型以及非阻塞异步型[1.2]. 阻塞型I/O意味着控制权只到调用操作结束了才会回到调用者手里. 结果调用者被阻塞了, 这段时间了做不了任何其它事情. 更郁闷的是,在等待IO结果的时间里,调用者