随笔分类 -  java设计模式

摘要:http://alaric.iteye.com/blog/1931253http://www.cnblogs.com/java-my-life/archive/2012/06/06/2534942.html1.备忘录模式(Memento) 定义:主要目的是保存一个对象的某个状态,以便在适当的时候恢复... 阅读全文
posted @ 2015-04-20 18:28 beyondbycyx 阅读(166) 评论(0) 推荐(0)
摘要:1.命令模式(CommandMode) 定义:命令模式就是对命令的封装,将发起命令的动作和执行命令的动作分开,委派给不同的对象实现。 目的是使命令的发起者和命令的执行者之间解耦,实现请求和执行的分开。 优点: ● 更松散的耦合 命令模式使得发起命令的对象——客户端,和具体实现命令的对... 阅读全文
posted @ 2015-04-20 16:33 beyondbycyx 阅读(166) 评论(0) 推荐(0)
摘要:1.Chain Of Responsibility(责任链模式) 定义:有多个对象,每个对象持有对下一个对象的引用,这样就会形成一条链,请求在这条链上传递, 直到某一对象决定处理该请求。但是发出者并不清楚到底最终那个对象会处理该请求。 此处强调一点就是,链接上的请求可以是一条链,可以是一... 阅读全文
posted @ 2015-04-20 14:01 beyondbycyx 阅读(148) 评论(0) 推荐(0)
摘要:1.迭代器模式(IteratorMode) 定义:迭代器模式就是顺序访问聚集中的对象,一般来说,集合中非常常。 既有两个对象:一是聚集对象:需要遍历的对象。二是迭代器对象:用于对聚集对象进行遍历访问 关系图: 2.例子 2.1 集合//集合接口:获取,长度方法public inte... 阅读全文
posted @ 2015-04-20 11:56 beyondbycyx 阅读(134) 评论(0) 推荐(0)
摘要:1.观察者模式(Observer Mode) 定义:一种一对多的关系,属于类与类之间的关系,不涉及继承。 当一个对象变化时,其它依赖该对象的对象都会收到通知,并且随着变化! 关系图: 2.领导通知学生和老师的例子 2.1 观察者//观察者接口:更新方法(更新所有的子类)public in... 阅读全文
posted @ 2015-04-20 11:22 beyondbycyx 阅读(144) 评论(0) 推荐(0)
摘要: 阅读全文
posted @ 2015-04-17 14:07 beyondbycyx 阅读(102) 评论(0) 推荐(0)
摘要:第一类:通过父类与子类的关系进行实现。第二类:两个类之间。第三类:类的状态。第四类:通过中间类 阅读全文
posted @ 2015-04-17 14:06 beyondbycyx 阅读(123) 评论(0) 推荐(0)
摘要:1.享元模式(Flyweight)定义:享元模式的主要目的是实现对象的共享,即共享池,当系统中对象多的时候可以减少内存的开销,通常与工厂模式一起使用。 1.1 工厂//工厂:内置一个池,如果存在了则取出,否则则创建加入池中public class FactoryPool { private Hash... 阅读全文
posted @ 2015-04-17 14:02 beyondbycyx 阅读(145) 评论(0) 推荐(0)
摘要:1.组合模式(Composite) 定义:组合模式有时又叫部分-整体模式在处理类似树形结构的问题时比较方便 使用场景:将多个对象组合在一起进行操作,常用于表示树形结构中,例如二叉树,数等,文件目录。2.文件复制例子 文件类://对文件各种操作的接口public interface FileOpera... 阅读全文
posted @ 2015-04-17 12:32 beyondbycyx 阅读(140) 评论(0) 推荐(0)
摘要:1.桥接模式(Bridge)定义:桥接模式就是把事物和其具体实现分开,使他们可以各自独立的变化。 桥接的用意是:将抽象化与实现化解耦,使得二者可以独立变化。 使用场景:出现两个类或以上个类时,通过桥接模式来让它们相关联,而保持自身的变化2.举例:咖啡杯(大的,小的)和饮料(水,牛奶) 有两个类... 阅读全文
posted @ 2015-04-17 11:44 beyondbycyx 阅读(293) 评论(0) 推荐(0)
摘要:1.适配器(Adapter Mode) 定义:将两个不兼容的类纠合在一起使用,属于结构型模式,需要有Adaptee(被适配者)和Adapter(适配器)两个身份 目的是消除由于接口不匹配所造成的类的兼容性问题。 我们经常碰到需要将两个没有关系的类组合在一起使用,第一种方法是,修... 阅读全文
posted @ 2015-04-14 18:25 beyondbycyx 阅读(161) 评论(0) 推荐(0)
摘要:1.代理模式(ProxyMode) 定义:外观模式是对类与类之间关系的描述,而代理模式是对原来的方法添加其他的操作。 代理有“网关”的含义,比如用户访问论坛,则要经过代理(网关)授权给你才能访问,即 游客和注册用户的权限不同。 比如说你要去买房子,而买房子的过程包括:1.看房... 阅读全文
posted @ 2015-04-14 16:01 beyondbycyx 阅读(182) 评论(0) 推荐(0)
摘要:1.外观模式(Facade) 最少知道原则:一个类应该尽可能少的与其他类发生相互作用,使类相对独立,系统功能模块相对独立。 定义:减少类与类之间的依赖关系,就像Spring一样,可以将类和类之间的关系配置到配置文件中。 而外观模式则是将它们类之间的关系放入一个Facade类中,降低类与类之间... 阅读全文
posted @ 2015-04-14 14:53 beyondbycyx 阅读(129) 评论(0) 推荐(0)
摘要:1.BuilderMode 定义:将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。[构建与表示分离,同构建不同表示] 比如,一辆汽车由很多部件组成。部件有不同,组装方式也有不同。 与抽象工厂的区别:在建造者模式里,有个指导者,由指导者来管理建造者,用户是与指导者联系... 阅读全文
posted @ 2015-04-14 12:47 beyondbycyx 阅读(210) 评论(0) 推荐(0)
摘要:1.Prototype(原型模式) 定义:用原型实例指定创建对象的种类,并且通过克隆这些原型创建新的对象。 注意:这里的“克隆”,指的是通过调用Object类的clone方法来完成的,它直接在内存中复制数据, 因此不会调用到类的构造方法。不但构造方法中的代码不会执行,甚至连访问权限都对原型模... 阅读全文
posted @ 2015-04-13 11:56 beyondbycyx 阅读(158) 评论(0) 推荐(0)
摘要:1.工厂方法模式(FactoryMode) 定义:提供创建对象的接口,方便对象的创建。1.1 静态工厂方法模式(Static Factory Method Mode) 定义:对于对象的创建,交给工厂类内部的静态方法实现。 使用场景:适用于基类的子类较少时,且基本不会再增加子类时。 坏处... 阅读全文
posted @ 2015-04-13 10:41 beyondbycyx 阅读(190) 评论(0) 推荐(0)
摘要:1.策略模式(StrategyMode) 定义:属于java的行为型模式,遵循开闭原则(对扩展开放,对修改关闭),能有效减少面向过程的if-else语句, 策略模式定义了一系列算法,并将每个算法封装起来,使他们可以相互替换,且算法的变化不会影响到使用算法的客户。 使用场景:适用于将不同的算法... 阅读全文
posted @ 2015-04-08 12:33 beyondbycyx 阅读(174) 评论(0) 推荐(0)
摘要:1.装饰模式(Decorator) 定义:装饰模式就是给一个对象增加一些新的功能,而且是动态的,而且要求装饰对象和被装饰对象实现同一个接口。 装饰对象持有被装饰对象的实例,关系图如下: 应用场景: 1、需要扩展一个类的功能。 2、动态的为一个对象增加功能,而... 阅读全文
posted @ 2015-04-08 10:41 beyondbycyx 阅读(166) 评论(0) 推荐(0)