#设计模式之禅

设计模式之禅(1)-设计准则

  最近几周一直都在看设计模式之禅,看的过程当中,发现大多数的设计模式在平时编码过程当中使用到了,当时没意识到这就是设计模式的一种,翻看自己以前的代码,有些设计显然和设计模式的标准有出入,但是个人认为设计模式只是6大设计准则的具体标准实现。在具体项目中,应当灵活的根据设计准则设计出灵活的代码。只要代码扩展度高,复杂度低...

《设计模式之禅》之桥梁模式

桥梁模式也叫桥接模式,是一个比较简单的模式,其定义如下:将抽象和实现解耦,使得两者可以独立地变化。桥梁模式的四个角色Abstraction–抽象化角色它的主页职责是定义出该角色的行为,同时保存一个对实现画角色的引用,该角色一般是抽象类。Implementor–实现化角色它是接口或者抽象类,定义角色必需的行为和属性。Re...
代码星球 ·2020-12-28

《设计模式之禅》之享元模式

享元模式是池技术的重要实现方式,其定义如下:使用共享对象可有效地支持大量的细粒度的对象。享元模式的定义为我们提出了两个要求:细粒度的对象和共享对象。我们知道分配太多的对象到应用程序中将有损程序的性能,同时还容易造成内存溢出,那怎么避免呢?就是享元模式提到的共享技术。要求细粒度对象,那么不可避免地使得对象数量多且性质相近...

《设计模式之禅》之解释器模式

解释器模式是一种按照指定规定语法进行解析的方案,在现在项目中使用较少,其定义如下:给定一门语言,定义它的文法的一种表示,并定义一个解释器,该解释器使用该表示来解释语言中的句子。解释器模式通用类:(1)AbstractExpression–抽象解释器具体的解释任务由各个实现类完成,具体的解释器分别由TerminalExp...

《设计模式之禅》之状态模式

当一个对象内在状态改变时允许其改变行为,这个对象看起来像改变了其类。1.状态模式中的3个角色(1)State–抽象状态角色接口或抽象类,负责对象状态定义,并且封装环境角色以实现状态切换。(2)ConcreteState–具体状态角色每一个具体状态必须完成两个职责:本状态的行为管理以及趋向状态处理,通俗地讲,就是本状态下...
代码星球 ·2020-12-28

《设计模式之禅》之访问者模式

访问者模式是一个相对简单的模式,其定义如下:封装一些作用于某种数据结构中的各元素的操作,它可以在不改变数据结构的前提下定义作用于这些元素的新的操作。角色职责Visitor–抽象访问者抽象类或者接口,声明访问者可以访问哪些元素,具体到程序中就是visit方法的参数定义哪些对象是可以被访问的。ConcreteVisitor...

《设计模式之禅》之备忘录模式

备忘录模式提供了一种弥补真实世界缺陷的方法,让”后悔药”在程序的世界中真实可行,其定义如下:在不破坏封装性的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态。这样以后就可将该对象恢复到原先保存的状态。通用类(三个角色)Originator发起人角色记录当前时刻的内部状态,负责定义哪些属于备份范围的状态,负责创...

《设计模式之禅》之门面模式

门面模式也叫外观模式,是一种比较常用的封装模式,其定义如下:要求一个子系统的外部与其内部的通信必须通过一个统一的对象进行。门面模式提供一个高层次的接口,使得子系统更易于使用。1.Facade门面角色客户端可以调用这个角色的方法。此角色知晓子系统的所有功能和责任。一般情况下,本角色会将所有从客户端发来的请求委派到相应的子...
代码星球 ·2020-07-24

《设计模式之禅》之观察者模式

观察者模式也叫做发布订阅模式,它是一个在项目中经常使用的模式,其定义如下:定义对象间一种一对多的依赖关系,使得没当一个对象改变状态,则所有依赖于它的对象都会得到通知并被自动更新。观察者模式的几种角色名称:(1)Subject被观察者定义被观察者必须实现的职责,它必须能够动态地增加、取消观察者。它一般是抽象类或者实现类,...

《设计模式之禅》之组合模式

组合模式也叫合成模式,有时又叫做部分-整体模式,主要用来描述部分与整体的关系,其定义如下:将对象组合成的树形结构以表示”部分-整体”的层次结构,使得用户对单个对象和组合对象的使用具有一致性。组合模式的几个角色:(1)Component抽象构件角色定义参加组合对象的共有方法和属性,可以定义一些默认...
代码星球 ·2020-07-24

《设计模式之禅》之迭代器模式

它提供一种方法访问一个容器对象中各个元素,而又不需暴露该对象的内部细节。迭代器是为容器服务的,那什么是容器?能容纳对象的所有类型都可以称之为容器,例如Collection集合类型、Set类型等,迭代器就是为解决遍历这些容器中的元素而诞生的。Iterator抽象迭代器抽象迭代器负责定义访问和遍历元素的接口,而且基本上是有...
代码星球 ·2020-07-24

《设计模式之禅》之适配器模式

将一个类的接口变换成客户端所期待的另一种接口,从而使原本因接口不匹配而无法在一起工作的两个类能够在一起工作。适配器模式的三个角色:1.Target目标角色该角色定义把其他类转换为何种接口,也就是我们的期望接口。2.Adapter源角色你想把谁转换成目标角色,这个”谁”就是源角色,它是已经存在的、...

《设计模式之禅》之策略模式

策略模式是一种比较简单的模式,也叫做政策模式,其定义如下:定义一组算法,将每个算法都封装起来,并且使它们之间可以互换。策略模式使用的是面向对象的继承和多态机制,我们看看策略模式的三个角色:1.Context封装角色它也叫上下文角色,起承上启下封装作用,屏蔽高层模块对策略、算法的直接访问,封装可能存在的变化。2.Stra...
代码星球 ·2020-07-24

《设计模式之禅》之装饰模式

装饰模式是一种笔记常见的模式,其定义如下:动态地给一个对象添加一些额外的职责。就增加功能来说,装饰模式相比生成子类更为灵活。装饰模式通用类说明Component抽象构件Component是一个接口或者是抽象类,就是定义我们最核心的对象。也就是最原始的对象。注意:在装饰模式中,必然有一个最基本、最核心、最原始的接口或抽象...
代码星球 ·2020-07-24

《设计模式之禅》之责任链模式

使多个对象都有机会处理请求,从而避免了请求的发送者和接受者之间的耦合关系。将这些对象连成一条链,并沿着这条链传递该请求,直到有对象处理它为止。责任链模式的重点是在”链”上,由一条链去处理相似的请求在链中决定谁来处理这个请求。1.责任链模式的优点责任链模式非常显著的优点是将请求和处理分开。请求者可...
代码星球 ·2020-07-24
首页上一页12345...下一页尾页