摘要: 解释器模式(interpreter),给定一个语言,定义它的文法的一种表示,并定义一个解释器,这个解释器使用该表示来解释语言中的句子。编译原理的内容,定义一种语言,总结其文法,将其翻译成另一种语言(代码)。package interpreter;public abstract class Abstr... 阅读全文
posted @ 2015-10-11 10:55 郁闷紫番薯 阅读(175) 评论(0) 推荐(0) 编辑
摘要: 享元模式(Flyweigh),运用共享技术有效地支持大量细粒度的对象。package flyweight;//可以接受并作用于外部状态public abstract class Flyweight { public abstract void operation(int extrinsicS... 阅读全文
posted @ 2015-10-10 20:18 郁闷紫番薯 阅读(215) 评论(0) 推荐(0) 编辑
摘要: 职责链模式(Chain of Responsibility):使多个对象都有机会处理请求,从而避免请求的发送者和接收者之间的耦合关系。将这个对象连成一条链,并沿着这条链传递该请求,直到有一个对象处理它为止。优点:当客户提交一个请求是,请求是沿链传递直至有一个ConcreteHandler对象负责处理... 阅读全文
posted @ 2015-10-07 11:35 郁闷紫番薯 阅读(248) 评论(0) 推荐(0) 编辑
摘要: 命令模式(Command),将一个请求封装为一个对象,从而使你可用不同的请求对客户进行参数化:对请求排队或记录请求日志,以及支持可撤销的操作。敏捷开发原则告诉我们,不要为代码添加基于猜测的、实际不需要的功能,如果不清楚一个系统是否需要命令模式,一般就不要着急去实现它,事实上,在需要的时候通过重构实现... 阅读全文
posted @ 2015-10-05 12:40 郁闷紫番薯 阅读(166) 评论(0) 推荐(0) 编辑
摘要: 合成/聚合复用原则,尽量使用合成/聚合,尽量不要使用类继承。聚合(Aggregation)表示一种弱的‘拥有’关系,体现的是A对象可以包含B对象但B对象不是A对象的一部分。合成(Composition)则是一种强的'拥有'关系,体现了严格的部分和整体关系,部分和整体的生命周期一样。优先使用对象的合成... 阅读全文
posted @ 2015-10-05 09:23 郁闷紫番薯 阅读(2083) 评论(1) 推荐(0) 编辑
摘要: 组合模式(Composite),将对象组合合成树形以表示“部门整体”的层次结构。组合模式使得用户对单个对象和组合对象的使用具有一致性。一句话说就是利用树这种数据结构储存对象。迭代模式(Iterator),提供一种方法顺序访问一个聚合对象中各个元素,而又不暴露该对象的内部表示。数据结构内容。单例模式(... 阅读全文
posted @ 2015-10-03 15:49 郁闷紫番薯 阅读(238) 评论(0) 推荐(0) 编辑
摘要: 备忘录(Memento):在不破坏封装性的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态,并在该对象之外保存这个状态,这样以后就可将该对象恢复到原先保存的状态。package Memento;//发起人public class Originator { //记录此刻内部状态 ... 阅读全文
posted @ 2015-10-02 13:59 郁闷紫番薯 阅读(192) 评论(0) 推荐(0) 编辑
摘要: 状态模式(State),当一个对象的内在状态改变时允许改变其行为,这个对象看起来像是改变了其类。状态模式主要解决的是当一个对象状态转换的条件表达式过于复杂时的情况。把状态的判断逻辑转移到表示不同状态的一系列类当中,可以把复杂的判断逻辑简化。说实话这模式用起来好费劲,起到的作用也不是很大。适配器(Ad... 阅读全文
posted @ 2015-10-02 13:32 郁闷紫番薯 阅读(155) 评论(0) 推荐(0) 编辑
摘要: 抽象工厂模式(Abstract Factory),提供一个创建一系列相关或相互依赖对象的接口,而无需指定他们具体的类。所有在用简单工厂的地方,都可以考虑用反射技术,搭配配置文件去除switch 或 if,解除分支判断带来的耦合。(C#)Assembly.load("程序集名称").CreateIns... 阅读全文
posted @ 2015-10-01 14:03 郁闷紫番薯 阅读(360) 评论(0) 推荐(0) 编辑
摘要: 观察者模式又称发布-订阅 (Publish/Subscribe)模式。观察者模式定义了一种一对多的依赖关系,让多个观察者对象同时监听某一个主题对象。这个主题对象在状态发生变化时,会通知所有观察者对象,使它们能够自动更新自己。感觉书上写的有点累赘,我重写了一下结构。package observer;i... 阅读全文
posted @ 2015-09-26 10:58 郁闷紫番薯 阅读(299) 评论(0) 推荐(0) 编辑