![](https://img-blog.csdnimg.cn/20201014180756913.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
设计模式
文章平均质量分 77
homlee_zhang
这个作者很懒,什么都没留下…
展开
-
设计模式 - 桥接模式
一. 简述将抽象部分与它的实现部分分离,使他们可以独立地变化。属于结构型模式。二. 组成抽象化(Abstraction)角色:定义抽象类的接口并保存一个对实现化对象的引用。修正抽象化(Refined Abstraction)角色:扩展抽象化角色,改变和修正父类对抽象化的定义。实现化(Implementor)角色:定义实现类的接口,不给出具体的实现。此接口不一定和抽象转载 2013-05-20 15:05:13 · 484 阅读 · 0 评论 -
设计模式 - 模板方法模式
一. 简述定义一个操作中的算法的骨架,而将一些可变部分的实现延迟到子类中。使得子类可以不改变一个算法的结构即可重新定义该算法的某些特定的步骤。属于行为型模式。举例:我们假设一个饮品店要制作各种果汁,我们知道制作果汁的过程都是相似的,比如先加水,再加水果,再加冰......只是具体配料不同而已,我们也明白这些步骤的顺序是不能改变的(我假设不能吧),如果这个店招了一个服务员,这个服务员转载 2013-05-13 14:27:54 · 464 阅读 · 0 评论 -
设计模式 - 观察者模式
一. 简述定义了一个一对多的依赖关系,让一个或多个观察者对象监察一个主题对象。这样一个主题对象在状态上的变化能够通知所有的依赖于此对象的那些观察者对象,使这些观察者对象能够自动更新。属于行为型模式。二. 组成抽象主题(Subject)角色:又叫做抽象被观察者(Observable)角色。 把所有的观察者对象的引用保存在一个列表里转载 2013-05-13 17:33:17 · 524 阅读 · 0 评论 -
设计模式 - 外观模式
一. 简述为子系统中的一组接口提供一个统一的高层接口。这一接口使得子系统更加容易使用。也叫门面模式。属于结构型模式。举例:如果把医院作为一个子系统,按照部门职能,这个系统可以划分为挂号、门诊、划价、化验、收费、取药等。看病的病人要与这些部门打交道,就如同一个子系统的客户端与一个子系统的各个类打交道一样,不是一件容易的事情。首先病人必须先挂号,然后门诊。如果医生要求化验,病人必须转载 2013-05-13 15:46:01 · 486 阅读 · 0 评论 -
设计模式 - 原型模式
一. 简述用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象,而且不需知道任何创建的细节。实质就是对象的复制!因为Java中提供了clone()方法来实现对象的克隆,所以Prototype模式实现一下子变得很简单。属于创建型设计模式。二. 组成---三. UML类图四. 基本代码class Prototype转载 2013-05-13 11:15:10 · 428 阅读 · 0 评论 -
设计模式 - 建造者模式
一. 简述将一个复杂对象的构造与它的表示分离,使同样的构建过程可以创建不同的表示。属于创建型模式。将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。二. 组成建造者(Builder)角色:给出一个抽象接口,以规范产品对象的各个组成成分的建造。一般而言,此接口独立于应用程序的商业逻辑。具体建造者(Concrete Builder)角色:转载 2013-05-13 16:47:15 · 425 阅读 · 0 评论 -
设计模式 - 抽象工厂模式
一. 简述为创建一组相关或相互依赖的对象提供一个接口,而且无需指定他们的具体类。比如每个抽象产品角色都有两个具体产品。抽象工厂模式提供两个具体工厂角色,分别对应于这两个具体产品角色,每一个具体工厂角色只负责某一个产品角色的实例化。每一个具体工厂类只负责创建抽象产品的某一个具体子类的实例。属于创建型模式。工厂方法模式 vs 抽象工厂模式抽象工厂模式是工厂方法模式的升级转载 2013-05-14 11:22:50 · 481 阅读 · 0 评论 -
设计模式 - 状态模式
一. 简述当一个对象的内在状态改变时允许改变其行为,这个对象看起来像是改变了其类。状态模式主要解决的是当控制一个对象状态转换的条件表达式过于复杂时的情况,把状态的判断逻辑转到到表示不同状态的一系列类当中,可以把复杂的逻辑判断简化。属于行为模式。二. 组成环境类(Context): 定义客户感兴趣的接口。维护一个ConcreteState子类的实例,这个实例转载 2013-05-14 11:43:14 · 500 阅读 · 0 评论 -
设计模式 - 适配器模式
一. 简述将一个类的接口转换成客户希望的另外一个接口。Adapter模式使得原本由于接口不兼容而不能一起工作的那些类可以在一起工作。属于结构型模式。二. 组成目标接口(Target):客户所期待的接口。目标可以是具体的或抽象的类,也可以是接口。需要适配的类(Adaptee):需要适配的类或适配者类。适配器(Adapter):通过包装一个需要适配的对象,把原接口转换成转载 2013-05-14 14:33:34 · 427 阅读 · 0 评论 -
设计模式 - 工厂方法模式
一. 简述工厂方法(Factory Method)模式的意义是定义一个创建产品对象的工厂接口,将实际创建工作推迟到子类当中。核心工厂类不再负责产品的创建,这样核心类成为一个抽象工厂角色,仅负责具体工厂子类必须实现的接口,这样进一步抽象化的好处是使得工厂方法模式可以使系统在不修改具体工厂角色的情况下引进新的产品。工厂方法模式是简单工厂模式的衍生,解决了许多简单工厂模式的问题。首先完全实现转载 2013-05-10 17:47:06 · 435 阅读 · 0 评论 -
设计模式 - 代理模式
一. 简述为其他对象提供一种代理以控制对这个对象的访问,简而言之就是用一个对象来代表另一个对象。属于结构型模式。二. 组成抽象主题角色(Subject):声明了真实主题和代理主题的共同接口,这样一来在任何使用真实主题的地方都可以使用代理主题。真实主题角色(RealSubject)角色:定义了代理角色所代表的真实对象。代理主题(Proxy)角色:代理主题角色内转载 2013-05-10 17:01:01 · 432 阅读 · 0 评论 -
设计模式 - 访问者模式
一. 简述表示一个作用于某对象结构中的各元素的操作。它使你可以在不改变各元素类的前提下定义作用于这些元素的新操作。属于行为型模式。二. 组成Visitor 抽象访问者角色,为该对象结构中具体元素角色声明一个访问操作接口。该操作接口的名字和参数标识了发送访问请求给具体访问者的具体元素角色,这样访问者就可以通过该元素角色的特定接口直接访问它。ConcreteVi转载 2013-05-23 16:45:09 · 430 阅读 · 0 评论 -
设计模式 - 设计原则
一. 单一职责原则一个类,只有一个引起它变化的原因,应该只有一个职责。如果一个类承担的职责过多,就等于把这些职责耦合在一起,一个职责的变化可能会削弱或者抑制这个类完成其他职责的能力。这种耦合会导致脆弱的设计,当发生变化时,设计会遭受到意想不到的破坏。二. 开放-封闭原则(OCP,Open Closed Principle)是所有面向对象原则的核心。软件实体(类、模块、函数等原创 2013-05-09 14:14:58 · 500 阅读 · 0 评论 -
设计模式 - 策略模式
一. 简述策略模式是对算法的包装,是把使用算法的责任和算法本身分割开来,委派给不同的对象管理。策略模式通常把一个系列的算法包装到一系列的策略类里面,作为一 个抽象策略类的子类。属于行为型模式。二. 组成抽象策略角色: 策略类,通常由一个接口或者抽象类实现。具体策略角色:包装了相关的算法和行为。环境角色:持有一个策略类的引用,最终给客户端调用。三. UML类图转载 2013-05-08 17:55:33 · 436 阅读 · 0 评论 -
设计模式 - 简单工厂模式
简单工厂模式解释 简单工厂模式(Simple Factory Pattern)属于类的创新型模式,又叫静态工厂方法模式(Static FactoryMethod Pattern),是通过专门定义一个类来负责创建其他类的实例,被创建的实例通常都具有共同的父类。简单工厂模式的UML图 简单工厂模式中包含的角色及其相应的职责如下:转载 2013-05-08 16:17:04 · 441 阅读 · 0 评论 -
设计模式 - 命令模式
一. 简述将一个请求封装为一个对象,从而使你可用不同的请求对客户进行参数化;对请求排队或记录请求日志,以及支持可撤销的操作。属于行为型模式。二. 组成Command:定义命令的接口,声明执行的方法。ConcreteCommand:命令接口实现对象,是“虚”的实现;通常会持有接收者,并调用接收者的功能来完成命令要执行的操作。Receiver(Barbecuer类)转载 2013-05-20 16:14:35 · 388 阅读 · 0 评论 -
设计模式 - 装饰模式
一. 简述动态地给一个对象添加一些额外的职责,就好比为房子进行装修一样。因此,装饰器模式具有如下的特征:必须具有一个装饰的对象。必须拥有与被装饰对象相同的接口。可以给被装饰对象添加额外的功能。用一句话总结就是:保持接口,增强性能。属于结构型模式。二. 组成抽象构件角色(Component):定义一个抽象接口,以规范准备接收附加责任的对象,可以给这转载 2013-05-09 17:52:56 · 457 阅读 · 0 评论 -
设计模式 - 职责链模式
一. 简述为了避免请求的发送者和接收者之间的耦合关系,使多个接受对象都有机会处理请求。将这些对象连成一条链,并沿着这条链传递该请求,直到有一个对象处理它为止。通俗一点说就是,当客户提交一个请求时,从第一个对象开始,链中收到请求的对象要么亲自处理它,要么转发给链中的下一个候选者。提交请求的对象并不知道哪一个对象将会处理它。当然职责链中也可能没有可以处理该请求的对象,这种情况是允许发生的。属于转载 2013-05-22 16:32:10 · 418 阅读 · 0 评论 -
设计模式 - 中介者模式(调停者模式)
一. 简述用一个中介对象来封装一系列的对象交互。中介者使各对象不需要显式地相互引用,从而使其耦合松散,而且可以独立地改变它们之间的交互。属于行为型模式。二. 组成抽象调停者(Mediator)角色:定义出同事对象到调停者对象的接口,其中主要的方法是一个(或多个)事件方法。在某些情况下,这个抽象对象可以省略。具体调停者(ConcreteMediator)角色:实现转载 2013-05-23 12:12:39 · 516 阅读 · 0 评论 -
设计模式 - 享元模式
一. 简述享元模式就是通过使用共享的方式,达到高效地支持大量的细粒度对象。它的目的就是节省占用的空间资源,从而实现系统性能的改善。属于结构型模式。享元对象能做到共享的关键是区分内蕴状态和外蕴状态。 一个内蕴状态是存储在享元对象内部的,并且是不会随环境改变而改变的,因此一个享元可以具有内蕴状态并可以共享。 一个外蕴状态是随环境改变而改变的、不可以共享的状态。享元对象的转载 2013-05-23 16:12:16 · 518 阅读 · 0 评论 -
设计模式 - 组合模式
一. 简述将对象组合成树形结构以表示“部分-整体”的层次结构。组合模式使得用户对单个对象和使用具有一致性。属于结构型模式。二. 组成Component类:组合中的对象声明接口,在适当情况下,实现所有类共有接口的行为。声明一个接口用于访问和管理Component的子部件。Leaf类:叶节点对象。Composite类:实现Componet的相关操作,比如Add和转载 2013-05-14 17:56:47 · 554 阅读 · 0 评论