本文摘自http://blog.csdn.net/longyulu/article/details/9159589
一、设计模式的分类
1、创建型:工厂方法(Factory Method)、抽象工厂(Abstract Factory)、单例(singleton)、建造者(builder)、原型(prototype)。
2、结构型:适配器(Adapter)、装饰(Decorator)、代理(Proxy)、外观(Facade)、桥接(Bridge)、组合(Composite)、享元(Flyweight)。
3、行为型:策略(strategy)、模板方法(Template Method)、观察者(Observer)、迭代(Iterator)、责任链(Chain of Responsility)、命令(Command)、备忘录(Memento)、状态(State)、访问者(Visitor)、中介者(Mediator)、解释器(Interpreter)。
二、设计模式的原则
1、开闭原则:对扩展开放,对修改关闭。
2、单一职责原则。
3、里氏替换原则:任何基类可以出现的地方,子类一定可以出现。
4、依赖倒转原则:面向接口编程,依赖于抽象而不依赖于具体。
5、接口隔离原则:每个接口中不存在子类用不到而必须实现的方法。
6、迪米特法则(最少知道原则):一个类对自己依赖的类知道的越少越好。
7、合成复用原则:尽量首先使用合成/聚合的方式,而不是使用继承。
三、设计模式的描述
1、工厂方法模式:创建一个工厂接口和多个工厂实现类,需要增加新的功能时,直接增加新的工厂类,不需要修改之前的代码。
2、抽象工厂模式:多个抽象产品类,每个抽象产品类可以派生出多个具体产品类。每个具体工厂类可以创建多个具体产品类实例。
3、单例模式:一个JVM中,该对象只有一个实例存在。
4、建造者模式:把一个比较复杂的对象的构建封装到一个单独的Builder里面
5、原型模式:将一个对象作为原型,对其进行复制、克隆,产生一个和原对象类似的新对象。
6、适配器模式:将某个类的接口转换成客户端期望的另一个接口表示,目的是消除由于接口不匹配所造成的类的兼容性问题。
7、装饰器:给一个对象动态增加一些新的功能,要求被装饰的对象和装饰的对象实现同一个接口,装饰对象持有被装饰对象的实例。
8、代理:用一个代理类,替原对象进行一些操作。
9、外观模式:将类和类之间的关系放到一个Facade类中,降低类类之间的耦合度。
10、桥接模式:将抽象化与实现化解耦,使得二者可以独立变化。
11、组合模式:将多个对象组合在一起进行操作,常用于表示树形结构中。
12、享元模式:实现对象的共享,即共享池。
父类与子类关系
13、策略模式:定义了一系列算法,并将每个算法封装起来,使他们可以相互替换,不会影响到使用它们的客户。需要设计一个接口,为他们提供一个统一的方法,多个实现类实现这个方法,设计一个抽象类,提供辅助函数。
14、模板方法:一个抽象类中有一个主方法,再定义n个方法,可以是抽象的,也可以是实现的方法,定义一个类继承该抽象类,重写抽象方法,通过调用抽象类,实现对子类的调用。
类之间的关系
15、观察者:当一个对象发生变化时,其它依赖该对象的对象都会收到通知,并且随着变化。
16、迭代:顺序访问聚集中的对象。
17、责任链:有多个对象,每个对象持有对下一个对象的引用。这样形成一条链条,请求在链条上传递,直到某一对象决定处理该请求。但发出者不知道最终谁处理该请求。
18、命令模式:实现请求和执行分开。
类的状态
19、备忘录:保存一个类的某个状态,以便在适当的时候恢复对象。
20、状态:当对象的状态改变时,同时改变其行为。
中间类
21、访问者:把数据结构和用于结构上的操作解耦,使得操作集合可以相对自由的演化。
22、中介者:只需关心和Mediator类的关系,具体类类之间的关系及调度交给Mediator就行。
23、解释器:给定一个语言,定义它的文法的一种表示,并定义一个解释器,这个解释器使用该表示来解释语言中的句子。
相关推荐
人人都懂设计模式 设计模式是软件开发中的一种解决方案,它提供了一种通用的设计思想和方法论,可以帮助开发者更好地设计和实现软件系统。设计模式可以分为三大类:创建型模式、结构型模式和行为型模式。 在本书中...
主要是介绍各种格式流行的软件设计模式,对于程序员的进一步提升起推进作用,有时间可以随便翻翻~~ 23种设计模式汇集 如果你还不了解设计模式是什么的话? 那就先看设计模式引言 ! 学习 GoF 设计模式的重要性 ...
设计模式 的分类 总体来说设计模式分为三大类: 创建型模式(5): 工厂方法模式 、抽象工厂模式、单例模式、建造者模式、原型模式。 结构型模式(7): 适配器模式、装饰器模式、代理模式、外观模式、桥接模式、...
GOF(Gang of Four)设计模式,由Erich Gamma、Richard Helm、Ralph Johnson和John Vlissides四位专家在他们的著作《设计模式:可复用面向对象软件的基础》中提出,被誉为设计模式的经典之作。本资源包含了GOF设计...
《Head First 设计模式》与《Java设计模式(第2版)》是两本非常重要的IT书籍,专注于软件开发中的设计模式。设计模式是解决软件设计中常见问题的经验总结,它们提供了一种标准的方法来处理特定场景下的问题,使得代码...
根据提供的文档概览,我们可以对每个章节所涉及的设计模式进行详细的阐述和解释。下面将针对文档中提及的设计模式逐一展开,以便更好地理解这些模式的概念、结构、应用场景以及优缺点。 ### 1. 面向对象程序设计...
在计算机科学领域,设计模式是软件工程中用于解决特定问题的一般性方案,它们是经过实践检验的最佳实践。这些模式被广泛应用于面向对象软件设计中,能够提高代码的可重用性、灵活性和可维护性。设计模式通常被划分为...
这个压缩包文件"设计模式(包含5个设计模式)含源代码报告.rar"显然是一份宝贵的资源,它涵盖了五个核心的设计模式,并附带了详细的类图、源代码以及文档报告,这对于学习和理解设计模式至关重要。 首先,我们要探讨...
设计模式是构建大型软件系统zui强大的方法之一,优化软件架构和设计已经逐渐成为软件开发和维护过程中的一个重要课题。 Python设计模式(第2版)通过11章内容,全面揭示有关设计模式的内容,并结合Python语言进行示例...
《Java设计模式》课程设计报告主要探讨了如何利用Java编程语言和MyEclipse集成开发环境来实现基于设计模式的西瓜市场系统。这个项目涵盖了四种重要的设计模式:单例模式、代理模式、建造者模式和抽象工厂模式,为...
本系统基于六种设计模式,运用到的设计模式有备忘录模式,简单工厂模式,迭代器模式,状态模式,模版方法模式,单例模式。 具体实现过程、UML类图以及实现效果详见如下项目说明地址: ... 该系统为绘图系统,该系统通过...
《新版设计模式手册 - C#设计模式(第二版)》是一部深入探讨C#编程中设计模式的权威指南,尤其适合已经有一定C#基础并希望提升软件设计能力的开发者阅读。设计模式是解决软件开发中常见问题的经验总结,是软件工程的...
软件设计模式(Java版)习题答案 本资源为软件设计模式(Java版)习题答案,由程细柱编著,人民邮电出版社出版。该资源涵盖了软件设计模式的基础知识,包括软件设计模式的概述、UML中的类图、面向对象的设计原则、...
设计模式精解- GoF 23种设计模式解析附C++实现源码 懂了设计模式,你就懂了面向对象分析和设计(OOA/D)的精要。反之好像也可能成立。道可道,非常道。道不远人,设计模式亦然如此。 一直想把自己的学习经验以及在...
全书用两章篇幅对设计模式和GRASP作了基本介绍,3种设计模式的讲解:对于每一种模式,先给出定义,接着通过类比方式用一个现实世界中的例子说明模式的应用,然后分别以C#和Java代码例述模式的架构实现。最后一章给出...
资源名称:MongoDB应用设计模式内容简介:无论是在构建社交媒体网站,还是在开发一个仅在内部使用的企业应用程序,《MongoDB应用设计模式》展示了MongoDB需要解决的商业问题之间的连接。你将学到如何把MongoDB设计...
本课程针对上述问题,有针对性的进行了升级 (1) 授课方式采用 图解+框架源码分析的方式,让课程生动有趣好理解 (2) 系统全面的讲解了设计模式,包括 设计模式七大原则、UML类图-类的六大关系、23种设计模式及其分类,...
设计模式是软件工程中的一种最佳实践,它是在特定上下文中解决常见问题的经验总结。"设计模式之美——教你写出高质量代码"这个主题旨在帮助开发者更好地理解和应用设计模式,从而提升代码的质量和可维护性。设计模式...
“[设计模式]在实用环境下特别有用,因为它分类描述了一组设计良好,表达清楚的面向对象软件设计模式。整个设计模式领域还很新,本书的四位作者也许已占据了这个领域造诣最深的专家中的半数,因而他们定义模式的方法...
在软件开发领域,设计模式是经过时间和实践验证的解决方案模板,用于解决常见问题。本作业以“软件设计模式”为主题,特别关注了装饰模式、工厂模式和适配器模式的运用。这三种模式都是面向对象设计的核心部分,它们...