#之禅

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

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

《设计模式之禅》之命令模式

将一个请求封装成一个对象,从而让你使用不同的请求把客户端参数化,对请求排队或记录请求日志,可以提供命令的撤销和恢复功能。命令模式的通用类图(这里我抽象为如下):1.Receive接收者角色该角色就是干活的角色,命令传递到这里是应该被执行的。2.Command命令角色需要执行的所有命令都在这里声明。3.Invoker调用...

《设计模式之禅》之中介者模式

用一个中介对象封装一系列的对象交互,中介者使各对象不需要显示地相互作用,从而使其耦合松散,而且可以独立地改变它们之间的交互。中介者模式主要由以下几个部分组成:1.Mediator抽象中介者角色抽象中介者角色定义统一的接口,用于各同事角色之间的通信.2.ConcreateMediator具体中介者角色具体中介者角色通过协...

《设计模式之禅》之原型模式

用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象。1.原型模式的优点(1)性能优良原型模式是在内存二进制流的拷贝,要比直接new一个对象性能好很多,特别是要在一个循环体内产生大量的对象时,原型模式可以更好地体现其优点。(2)逃避构造函数的约束这既是它的优点也是它的缺点,直接在内存中拷贝,构造函数是不会执行...

《设计模式之禅》之代理模式

为其他对象提供一种代理以控制对这个对象的访问。代理模式也叫委托模式,它是一项基本设计技巧。许多其他的模式,如状态模式、策略模式、访问者模式本质上是在更特殊的场合采用了委托模式,而且在日常的应用中,代理模式可以提供非常好的访问控制。如Struts2的Form元素映射就是采用了代理模式。代理模式通用类:1.Subject抽...

《设计模式之禅》之建造者模式

将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。1.建造者模式的优点(1)封装性使用建造者模式可以使客户端不必知道产品内部组成的细节,如例子中我们就不需要关心每一个具体的模型内部是如何实现的,产生的对象类型就是CarModel。(2)建造者独立,容易扩展BenzBuilder和BMWBuidl...

《设计模式之禅》之模板方法模式

定义一个操作中的算法的框架,二将一些步骤延迟到子类中。使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤。Abstract-Class叫抽象模板,它的方法分为两类:1.基本方法基本方法也叫做基本操作,是由子类实现的方法,并且在模板方法被调用。2.模板方法可以有一个或几个,一般是一个具体方法,也就是一个框架,...

《设计模式之禅》之抽象工厂模式

为创建一组相关或相互依赖的对象提供一个接口,而且无须指定它们的具体类。1.抽象工厂模式的优点封装性,每个产品的实现类不是高层模块要关心的,它要关心的是什么?是接口,是抽象,它不关心对象是如何创建出来的,这由谁负责呢?工厂类,只要知道工厂类是谁,我就能创建出一个需要的对象,省时省力,优秀设计就应该如此;产品族内的约束为非...

《设计模式之禅》之工厂方法模式

定义一个用于创建对象的接口,让子类决定实例化哪一个类。工厂方法使一个类的实例化延迟到其子类。1.工厂方法模式的优点首先,良好的封装性,代码结构清晰。一个对象创建是有条件约束的,如一个调用者需要一个具体的产品对象,只要知道这个产品的类名(或约束字符串)就可以了,不用知道创建对象的艰辛过程,降低模块间的耦合;其次,工厂方法...

《设计模式之禅》之单例模式

确保某一个类只有一个实例,而且自行实例化并向整个系统提供这个实例。1.单例模式的优点由于单例模式再内存中只有一个实例,减少了内存开支,特别是一个对象需要频繁地创建、销毁时,而且创建或销毁时性能又无法优化,单例模式的优势就非常明显;由于单例模式只生成一个实例,所以减少了系统的性能开销,当一个对象的产生需要比较多的资源时,...

《设计模式之禅》之六大设计原则下篇

本文主要讲迪米特法则和开闭原则。1.定义迪米特法则也称最少知道原则,虽然名字不同,但描述的是同一个规则:一个对象应该对其他对象有最少的了解。通俗地讲,一个类应该对自己需要耦合或调用的类知道得最少,你(被耦合或调用的类)的内部是如何复杂都和我没关系,那是你的事情,我就知道你提供的这么多public方法,我就调用这么多,其...

《设计模式之禅》之六大设计原则中篇

本文主要讲依赖倒置原则和接口隔离原则。1.定义高层模块不应该依赖低层模块,两者都应该依赖其抽象;抽象不应该依赖细节;细节应该依赖于抽象;高层模块和低层模块容易理解,每一个逻辑的实现都是由原子逻辑组成的,不可分割的原子逻辑就是低层模块,原子逻辑的再组装就是高层模块。那什么是抽象?什么又是细节呢?在Java语言中,抽象就是...

《设计模式之禅》之六大设计原则上篇

本文主要讲单一职责原则和里氏替换原则。1.定义应该有且有一个原因引起类的变更。2.单一职责原则的好处好处如下:类的复杂性降低,实现什么职责都有明确清晰的定义;可读性提高,复杂性降低,那当然可读性提高;可维护性提高,可读性提高,那当然更容易维护了;变更引起的风险降低,变更是不必可少的,如果接口的单一职责做得好,一个接口修...

python之禅

>>>importthisTheZenofPython,byTimPetersBeautifulisbetterthanugly.Explicitisbetterthanimplicit.Simpleisbetterthancomplex.Complexisbetterthancomplicated....
代码星球 代码星球·2020-05-17

设计模式之禅之设计模式-原型模式

一:原型模式的定义       --->用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象       --->原型模式(PrototypePattern)...
首页上一页123下一页尾页