![](https://img-blog.csdnimg.cn/20201014180756918.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
design patterns
文章平均质量分 78
nieou
这个作者很懒,什么都没留下…
展开
-
java Bridge 桥接模式
Bridge模式的概念 Bridge模式是构造型的设计模式之一。Bridge模式基于类的最小设计原则,通过使用封装,聚合以及继承等行为来让不同的类承担不同的责任。它的主要特点是把抽象(abstraction)与行为实现(implementation)分离开来,从而可以保持各部分的独立性以及应对它们的功能扩展。意图:将一组实现与另一组使用他们的对象分离问题:一个抽象类 的派生类 必须使用多个实现 ,但出现类数量增长尽量用最简单的例子来说明:我来小的时候画图,画图,画三角形,长方形,还有不同颜色的铅笔来填色,要原创 2010-07-20 18:12:00 · 2894 阅读 · 1 评论 -
14 Prototype 原型模式
在一个特定的场景中经常需要出现多个相同但状态各异的对象,通常的解决方法是通过new创建这些对象之后分别去设置这些对象的状态。原型设计模式提供了更快捷、更有效的解决方法。通过clone()方法来复制一个指定类型的对象来创建更多同类型的对象。这个指定的对象可被称为“原型”对象,也就是通过复制原型对象来得到更多同类型的对象。我们以克隆多利羊为例,有颜色,大小,角三个属性,sheep 必须实现 Cloneabe接口,否则报CloneNotSupportedException错误。import java.io.*;p原创 2010-09-21 08:40:00 · 520 阅读 · 0 评论 -
12 Factory 工厂模式
<br />一、工厂模式的形态 <br />1:简单工厂(Simple Factory)。 <br />2:工厂方法(Factory Method)。 <br />3:抽象工厂(Abstract Factory)。<br />二、简单工厂(Simple Factory) <br />又叫静态工厂,是工厂模式三中状态中结构最为简单的。主要有一个静态方法,用来接受参数,并根据参数来决定返回实现同一接口的不同类的实例。<br />//抽象产品接口 水果接口<br />public interface Frui原创 2010-09-17 09:07:00 · 569 阅读 · 0 评论 -
11 Builder 生成器模式
<br />在这里我们使用一个构建房屋的场景来说明“生成器”——builder模式的使用。<br />这个模式的定义是:<br />1、当创建复杂对象的算法应该独立于该对象的组成部分以及它们的装配方式时。<br /> <br />2、当构造过程必须允许被构造的对象有不同的表示时。<br />简单的说,它有点像工厂模式,但是最终生成“产品”的是Director而非Factory,Director可以使用的builder来生成产品。而builder——生成器则遵循统一的接口,实现不原创 2010-09-17 09:06:00 · 432 阅读 · 0 评论 -
10 Flyweight 享元模式
<br />一个内蕴状态是存储在享元对象内部的,并且是不会随改变而有所不同的,因此,一个享元可以具有内蕴状态并可以共享。<br />一个外蕴状态时随着环境改变而改变的、不可以共享的状态。享元对象的外蕴状态必须由客户端保存,并在享元对象被创建之后,在需要使用的时候再传入到享元对象内部。外蕴状态不可以影响享元对象的内蕴状态。换句话说,它们是相互独立的。<br />享元模式的种类:根据所涉及的享元对象的内部表象,享元模式可以分成单纯享元模式和复合享元模式两种形式。<br />在Java语言中,String类型就使原创 2010-09-16 14:14:00 · 531 阅读 · 0 评论 -
Proxy 代理模式
<br />代理模式就是给某一个对象提供一个代理对象,并由代理对象控制对源对象的引用。就是一个人或者一个机构代替另一个人或者另一个机构去采取一些行动。代理模式中的代理者就好比中介机构,它提供了对被代理对象的一切事物。<br />代理模式与适配器模式和装饰器模式相似,它们之间的区别是:<br />Ø 适配器模式是将一个类A转换成另一个类B。<br />Ø 装饰器模式是为一个类A增加新的功能,从而变成类B。<br />Ø 代理模式是为一个类A转换操作类B。<br />它们三者的限制条件层层递进原创 2010-09-16 14:13:00 · 496 阅读 · 0 评论 -
责任链模式 chain of responsibility
<br />一、定义<br />从名字上大概也能猜出这个模式的大概模样——系统中将会存在多个有类似处理能力的对象。当一个请求触发后,请求将在这些对象组成的链条中传递,直到找到最合适的“责任”对象,并进行处理。 <br />《设计模式》中给它的定义如下:使多个对象都有机会处理请求,从而避免请求的发送者和接收者之间的耦合关系。将这些对象连成一条链,并沿着这条链传递该请求,直到有一个对象处理它为止。 <br />从定义上可以看出,责任链模式的提出是为了“解耦”,以应变系统需求的变更和不明确性。 <br />下面是原创 2010-08-09 17:01:00 · 484 阅读 · 0 评论 -
Composite 组合模式
<br />Composite定义:<br /> 将对象以树形结构组织起来,以达成“部分-整体” 的层次结构,使得客户端对单个对象和组合对象的使用具有一致性.<br /> 想到Composite就应该想到树形结构图。组合体内这些对象都有共同接口,当组合体一个对象的方法被调用执行 时,Composite将遍历(Iterator)整个树形结构,寻找同样包含这个方法的对象并实现调用执行。可以用牵一动百来形容。<br />Composite好处:<br /> 1.使客户端调用简单,客户端可以一致的使用原创 2010-08-10 09:26:00 · 469 阅读 · 0 评论 -
Adapter 适配器模式
<br />1.概念: <br />适配器模式(Adapter Pattern)[GOF95]把一个类的接口变换成客户端所期待的另一种接口,从而使原本因接口不匹配而无法在一起工作的两个类能够在一起工作。 <br />2.两种形式 <br />a.类的适配器模式 b.对象的适配器模式 <br />3.模拟问题: <br />现在假设我们的程序已经设计了接口Request接口,但是现在有一个特殊的接口SpecificRequst能更好的完成我们的功能,但是它和我们现有的Request接口不匹配。那我们如何将它们原创 2010-08-10 09:26:00 · 400 阅读 · 0 评论 -
java Mediator 中介者模式
<br />GOF给中介者模式下的定义是:用一个中介对象来封装一系列的对象交互。中介者使各对象不需要显式地相互引用,从而使其耦合松散,而且可以独立地改变它们之间的交互。简单点来说,将原来两个直接引用或者依赖的对象拆开,在中间加入一个“中介”对象,使得两头的对象分别和“中介”对象引用或者依赖。<br />当然并不是所有的对象都需要加入“中介”对象。如果对象之间的关系原本一目了然,中介对象的加入便是“画蛇添足”。<br />中介者模式也叫调停模式,举一个例子,一项目工作需要轮翻工作,需要一个管理者(中介)统一调原创 2010-08-05 10:31:00 · 2009 阅读 · 1 评论 -
java singleton 单体模式
单例模式主要有3个特点:1、单例类确保自己只有一个实例。2、单例类必须自己创建自己的实例。3、单例类必须为其他对象提供唯一的实例。什么时候使用单例模式?单例模式也是一种比较常见的设计模式,它到底能带给我们什么好处呢?其实无非是三个方面的作用:第一、控制资源的使用,通过线程同步来控制资源的并发访问。第二、控制实例产生的数量,达到节约资源的目的。第三、作为通信媒介使用,也就是数据共享,它可以在不建立直接关联的条件下,让多个不相关的两个线程或者进程之间实现通信。单例模式有三种实现方式1:同步public clas原创 2010-07-28 16:58:00 · 1015 阅读 · 0 评论 -
java Observer 观察者模式
<br />GoF说道:Observer模式的意图是“定义对象间的一种一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都得到通知并被自动更新”。 <br />1, 观察者(具体执行操作的对象,有多个) <br />2, 被观察者(顾名思义是被观察的对象,如果该对象发生某些变化则通知观察者执行对应的操) <br /> <br />在 JDK的util包中有 Observable 类和 Observer 接口,被观察者继承 Observable 类,观察者实现 Observer 接口就可实现观察原创 2010-07-29 17:47:00 · 561 阅读 · 0 评论 -
Facade外观模式
<br /> <br /> 随着系统越来越复杂庞大,定义的类及其衍生的子类也会越来越多,系统的重用性也得到了加强。然而对于一些简单客户端来讲,过于复杂的子系统只会增加对他们的强耦合,一旦子系统变动,所有的客户端也必须跟着改动。外观模式在一定程度上解决了这个问题。它把客户端需要实现的功能包裹起来,客户端只需要访问它这么一个外观,无须窥探内部细节。而子系统的变动,只会影响外观模式本身做少量的变动。外观模式属于技巧性比较弱的一种模式。 <br /> 为子系统中的一组接口提供一个统一接口。Fa转载 2010-07-19 10:08:00 · 453 阅读 · 0 评论 -
15 Memento 备忘录模式
<br />备忘录(Memento Pattern)模式 <br />备忘录模式又叫做快照模式(Snapshot Pattern)或Token模式,是对象的行为模式。 <br />备忘录对象是一个用来存储另外一个对象内部状态的快照的对象。备忘录模式的用意是在不破坏封装的条件下,将一个对象的状态捕捉住,并外部化 <br />存储起来,从而可以在将来合适的时候把这个对象还原到存储起来的状态。备忘录模式常常与命令模式和迭代子模式一同使用。 <br />常见的软件系统往往不止存储一个状态,而是需要存储多个状态。这些转载 2010-09-21 08:44:00 · 514 阅读 · 0 评论