#设计名片的软件

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

门面模式也叫外观模式,是一种比较常用的封装模式,其定义如下:要求一个子系统的外部与其内部的通信必须通过一个统一的对象进行。门面模式提供一个高层次的接口,使得子系统更易于使用。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

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

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

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

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

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

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

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

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

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

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

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

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

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

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