设计模式的理解

转载 2004年10月15日 15:58:00
设计模式的理解 

Adams Wang 


面向对象指使用离散的对象来构建软件系统;设计模式利用了对象的继承、组合和代理(delegation),在较OOP高的层次上考虑问题。尤其是使用代理来对任何不稳定或不确定的方面,如状态、对象的创建、应用平台等等,进行封装,从而保证了源代码的重用和设计的稳定。实际上可以理解成为是OOP中虚函数、多态概念的延伸。即OOP中的虚函数和多态实现的是方法、对象行为上的多态,而设计模式的则对创建、结构和高层次的行为进行了多态。 

Creation Pattern 
当系统演化成依赖于对象的组合、聚集时,创建性模式带来了更大的灵活性。 

Abstract Factory:抽象工厂是创建对象族。它能确保被创建对象家族的一致性,和对象家族发生改变的灵活性,在跨平台的设计中可以得到应用。 

Prototype:一种将对象生成的责任代理给自己的模式。它与C++中的拷贝函数不同,C++不支持拷贝函数的多态,即当对象使用基类的指针进行引用时,无法按照子类进行拷贝,会造成切割。Prototype在Java中得到大量的应用。 

Builder:侧重点在于对象创建的过程中,避免在code中出现大量的硬代码。当被创建对象结构发生改变时。避免了对散布在程序中大量new语句的修改。 

Factory Method:实现了生成对象不确定时的解决方案。实际上在C++和Java中,对于虚函数的理解比较容易,即某个方法不确定时,使用虚函数来声明,而将具体的实现交给子类。Factory Method它实现了对象创建时的多态。 

Singleton类似于一种技巧,利用OOP的技术,强制实现了有限、定量对象的产生。 

对比:Factory Method实现了创建的多态;Prototype实现了拷贝的多态;Builder实现了对象创建过程的多态。 

Structural Pattern 
结构性模式关注于如何将类和对象组成的更大结构,它带来了对象组合时的灵活性。 

Composite:适用于表达整体-部分关系,可以忽略单个对象和合成对象之间的差别。它实际采用的是一种树状结构。 

Decorator:与继承不同,用代理的方式实现了多态,可以避免大量子类的派生。相应的它适用于链状和树状的结构。 

Proxy:结构与Decorator非常相似,它们的侧重点不同,一种是修改对象的行为,另一种控制访问。 

Bridge:实现了抽象和实现之间的永久绑定,可以理解为在基于已有的构件上设计时,而且已有的设计可能会发生变化。它往往与Abstract Factory共同用于跨平台设计的情况。 

Façade:用于对子系统提供统一的接口。 

Behavioral Pattern 
行为模式涉及到算法和对象间的职责和分配。行为模式描述了通信方式、控制方法以及对象之间的联系方式。 

Chain of responsibility:用于链状结构,将职责沿链进行传递,不显示指定责任的承担人,由对象自己实现责任的实施。 

Command:将某个职责封装成对象,可以与memento结合在一起用于Undo。 

Iterator:大量应用于算法库中,对遍历操作进行封装。 

Mediator:通过中介对象的引入将网状的结构变成以中介者为中心的星形结构,从而保证了对象结构上的稳定,即不会因为新对象的引入造成大量类中指针的修改。 

Observer:经典MVC模式的变形,与Mediator的结构类似,在对象级别是星形结构。它们均是将网状结构变成星形结构,但侧重点不同。 

State:经典方法状态机的OO实现,可大量应用于控制密集型的系统中。 

Strategy:将算法进行封装。适合应用于对效率要求较高的软件中,为效率的提高预留接口。 

Visitor:在对象级别中实际为矩阵结构,与Abstract Factory类似。它们以采用对象的代理,为矩阵的一个维度提供灵活性和一致性。

设计模式之个人通俗理解

参考了维基百科对设计模式的讲解,以及CSDN上的博文,对23种设计模式有了一定的了解。...
  • Alen_Sun
  • Alen_Sun
  • 2016年02月26日 12:09
  • 1056

对几种常见设计模式的理解

对几种常见设计模式的理解  设计模式是一套被反复使用、多数人知晓的、经过分类编目的、代码设计经验的总结。使用设计模式是为了可重用代码、让代码更容易被他人理解、保证代码可靠性。   最早提出“设计模...
  • dengpeng0419
  • dengpeng0419
  • 2015年08月31日 10:58
  • 3284

我所理解的设计模式(C++实现)—— “一句话总结”和索引

我所理解的设计模式系列已经全部完成,在写该系列的过程中收获很多。俗话说得好,好记性不如烂笔头,写出来不单单可以增加自己对知识的理解,也可以很好的分享给大家,大家共同学习。这里是最后一篇,来给所有的设计...
  • LCL_data
  • LCL_data
  • 2013年09月28日 07:22
  • 10118

面向对象编程和设计模式的七大原则理解

1单一职责原则 2开闭原则 3里氏置换原则 4依赖倒置原则 5接口隔离原则 6迪米特法则 7 组合/聚合复用原则...
  • chl_ndsc
  • chl_ndsc
  • 2017年08月17日 18:31
  • 79

MVP 设计模式理解,实战理解MVP

作者: 夏至 欢迎转载,也请保留这份申明,谢谢。1、什么是MVPMVP,全称 Model-View-Presenter。它是从 MVC中演变过来的,它的基本思想是相通的;在MVP中,View更加专注于...
  • u011418943
  • u011418943
  • 2017年04月09日 16:57
  • 1614

一句话理解23种设计模式

设计模式的几大原则 Ø  开放-封闭原则:对扩展开放,对修改封闭,可以用新的类来解决问题 Ø  单一职责原则:设计目的单一的类。也就是降低程序的耦合程度 Ø  李氏替换原则:用子类去替代父类 Ø  依...
  • feitianxuxue
  • feitianxuxue
  • 2017年08月31日 10:14
  • 522

各种设计模式的形象描述

【 声明:版权所有,欢迎转载,请勿用于商业用途。  联系信箱:feixiaoxing @163.com】     设计模式的书相信很多人都看过。对于设计模式这样一种方法,相信不同的人有不同的...
  • iw1210
  • iw1210
  • 2014年06月17日 12:14
  • 515

设计模式 基础概念

1. 什么是模式:模式是在特定环境下人们解决某类重复出现问题的一套成功或有效的解决方案。【A pattern is a successful or efficient solution to a re...
  • u014099894
  • u014099894
  • 2016年07月17日 23:11
  • 664

三分钟理解“建造者模式”——设计模式轻松掌握

“建造者模式”生活中的例子: 肯德基做汉堡的过程都是有严格的规范的,不管是麦香鸡腿堡还是新奥尔良烤鸡腿堡,他们的制作步骤都是有严格规定,做汉堡的人既不能多做一步,也不能少做一步。对于不同的汉堡来说,虽...
  • u010425776
  • u010425776
  • 2015年08月30日 14:07
  • 1242

设计模式通俗理解

第10个设计模式,享元设计模式 运用共享技术有效地支持大量细粒度的对象
  • yuanlairuci1992
  • yuanlairuci1992
  • 2016年08月22日 22:05
  • 718
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:设计模式的理解
举报原因:
原因补充:

(最多只允许输入30个字)