23种设计模式

中介者模式(设计模式详解版)

在现实生活中,常常会出现好多对象之间存在复杂的交互关系,这种交互关系常常是网状结构,它要求每个对象都必须知道它需要交互的对象。例如,每个人必须记住他(她)所有朋友的电话;

2021-02-06

迭代器模式(设计模式详解版)

在现实生活以及程序设计中,经常要访问一个聚合对象中的各个元素,如数据结构中的链表遍历,通常的做法是将链表的创建和遍历都放在同一个类中,但这种方式不利于程序的扩展,如果要更

2021-02-06

解释器模式(设计模式详解版)

在软件开发中,会遇到有些问题多次重复出现,而且有一定的相似性和规律性。如果将它们归纳成一种简单的语言,那么这些问题实例将是该语言的一些句子,这样就可以用编译原理中的解释器

2021-02-06

备忘录模式(设计模式详解版)

每个人都有犯错误的时候,都希望有种后悔药能弥补自己的过失,让自己重新开始,但现实是残酷的。在计算机应用中,客户同样会常常犯错误,能否提供后悔药给他们呢?当然是可以的,而且

2021-02-06

组合模式(设计模式详解版)

在现实生活中,存在很多部分-整体的关系,例如,大学中的部门与学院、总公司中的部门与分公司、学习用品中的书与书包、生活用品中的衣服与衣柜、以及厨房中的锅碗瓢盆等。在软件开发

2021-02-06

享元模式(设计模式详解版)

在面向对象程序设计过程中,有时会面临要创建大量相同或相似对象实例的问题。创建那么多的对象将会耗费很多的系统资源,它是系统性能提高的一个瓶颈。例如,围棋和五子棋中的黑白棋子

2021-02-06

命令模式(设计模式详解版)

在软件开发系统中,方法的请求者与方法的实现者之间经常存在紧密的耦合关系,这不利于软件功能的扩展与维护。例如,想对方法进行撤销、重做、记录等处理都很不方便,因此如何将方法的

2021-02-06

状态模式(设计模式详解版)

在软件开发过程中,应用程序中的部分对象可能会根据不同的情况做出不同的行为,我们把这种对象称为 有状态的对象 ,而把影响对象行为的一个或多个动态变化的属性称为 状态 。当有状态

2021-02-06

工厂方法模式(设计模式详解版)

在现实生活中社会分工越来越细,越来越专业化。各种产品有专门的工厂生产,彻底告别了自给自足的小农经济时代,这大大缩短了产品的生产周期,提高了生产效率。同样,在软件开发中能否

2021-02-06

简单工厂模式

现实生活中,原始社会自给自足(没有工厂),农耕社会小作坊(简单工厂,民间酒坊),工业革命流水线(工厂方法,自产自销),现代产业链代工厂(抽象工厂,富士康)。我们的项目代码

2021-02-06