#新模式

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

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

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

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

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

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

桥梁模式

桥梁模式也叫桥接模式,其定义如下:Decoupleanabstractionfromitsimplementationsothatthetwocanvaryindependently.将抽象和实现解耦,使得两者可以独立地变化桥梁模式的角色:Abstraction抽象化角色:它的主要职责就是定义出该角色的行为,同时保存一...
代码星球 ·2020-12-26

享元模式

享元模式是池技术的重要实现方式,其定义如下:Usesharingtosupportlargenumbersoffine-grainedobjectsefficiency.使用共享对象可有效的支持大量的细粒度的对象享元模式的定义为我们提出了两个要求:细粒度的对象和共享对象细粒度对象使用的数量多且性质相近,那么就需要将这些...
代码星球 ·2020-12-26

状态模式

状态模式的定义如下:Allowanobjecttoalteritsbehaviorwhenitsinternalstatechanges.Theobjectswillappeartochangeitsclass.当一个对象内在状态改变时允许其改变行为这个对象看起来像改变了其类。状态模式的核心是封装,状态的变更引起了行为...
代码星球 ·2020-12-26

备忘录模式

备忘录模式提供了一种弥补真实世界缺陷的方法,让“后悔药”在程序世界中可行,其定义如下:Withoutviolatingencapsulation,captureandexternalizeanobject'sinternalstatesothattheobjectcanberestoredtothisstatelate...
代码星球 ·2020-12-26

门面模式

门面模式也叫做外观模式,是一种比较常用的封装模式,其定义如下:Provideaunifieldinterfacetoasetofinterfacesinasubsystem.Facadedefinesahigher-levelinterfacethatmakesthesubsystemeasiertouse.要求一个子...
代码星球 ·2020-12-26

装饰模式

装饰模式的定义:Attachadditionalresponsibilitiestoanobjectdynamicallykeepingthesameinterface.Decoratorsprovideaflexiblealternativetosubclassingforextendingfuncitionlity...
代码星球 ·2020-12-26

中介者模式

中介者模式定义:Defineanobjectthatencapsulateshowasetofobjectsinteract.Mediatorpromotesloosecouplingbykeepingobjectsfromreferringtoeachotherexplicity,anditletsyouvaryth...
代码星球 ·2020-12-26

模板方法模式

TemplateMethodletssubclassessredefinecertainstepsofanalgorithmwithoutchangingthealgorithm'sstructure.定义一个操作中的算法框架,而将一些步骤延迟到子类中。使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤抽象...
代码星球 ·2020-12-26

VM虚拟机上在NAT模式下设置静态IP的做法

        1、问题:由于业务需要,个人笔记本电脑上用Vmware安装了3台Ubuntu虚拟机,现要求pc机连入局域网后,四台机器(3台ubuntu虚拟机+1台宿主机)能上网,并且,虚拟机要使用某一网段的固定IP。  ...

设计模式总结篇系列:命令模式(Command)

在程序设计中,经常会遇到一个对象需要调用另外一个对象的某个方法以达到某种目的,在此场景中,存在两个角色:请求发出者和请求接收者。发出者发出请求,接收者接收请求并进行相应处理。有时候,当需要对请求发出者和接收者进行解耦,即发出者中不能含有接收者的引用,如请求需要进行排队操作,或可能需要对请求进行取消操作等,在此类场景中,...

设计模式总结篇系列:观察者模式(Observer)

观察者模式中通常有两个基本的概念主题:观察者和被观察者。当被观察者状态发生改变时,需要通知相应的观察者,当然,每个被观察者所对应的观察者可能不知一个,他们之间是1:n的关系。用专业一点的术语对观察者模式的描述为:当一个对象变化时,其它依赖该对象的对象都会收到通知,并且随着变化。观察者模式的一般实现方式如下:1.定义观察...

设计模式总结篇系列:模板方法模式(Template Method)

模板方法模式需要开发抽象类和具体子类之间的协作。抽象类负责给出一个算法的轮廓和骨架,子类则负责给出这个算法的各个逻辑步骤。代表这些具体逻辑步骤的方法称做基本方法(primitivemethod);而将这些基本方法汇总起来的方法叫做模板方法(templatemethod)。子类重写抽象类中的抽象方法,通过调用抽象类中的模...
首页上一页...2324252627...下一页尾页