
设计模式
百草疯茂
这个作者很懒,什么都没留下…
展开
-
路一步步走>> 设计模式十一:FlyWeight-享元
package com.test.DPs.JieGou.FlyWeight;import java.util.HashMap;/** * 结构型:FlyWeight-享元 桥接:作用面为 对象 * * 用途:运用共享技术,有效地支持大量细粒度对象。 */abstract class flywei{}public class FlyWeight extends flywe...原创 2018-12-08 13:31:01 · 135 阅读 · 0 评论 -
路一步步走>> 设计模式一:AbstractFactory-抽象工厂
1. 还是自己打打代码容易理解。2. 把概念抽象为类,一个不够,再加一个,再加一个,再加... 3. 学习设计模式,先着手创建型模式,然后行为模式,再然后结构型模式。由简入繁,不容易枯燥放弃。package com.test.DPs.ChuangJian.AbstractFactory;/** * 创建型:AbstractFactory-抽象工厂 * * 注:virtua...原创 2018-12-07 13:34:59 · 119 阅读 · 0 评论 -
路一步步走>> 设计模式二:FactoryMethod-工厂方法
package com.test.DPs.ChuangJian.FactoryMethod;/** * 创建型:FactoryMethod-工厂方法 */interface food{}class A implements food{}class B implements food{}class C implements food{}public class StaticF...原创 2018-12-07 13:37:37 · 124 阅读 · 0 评论 -
路一步步走>> 设计模式三:Builder-建造者(生成器)
package com.test.DPs.ChuangJian.Builder;/** * 创建型:Builder-建造者(生成器) */public class Builder{ static class Student{ String name = null; String sex = null; String school = null; int number ...原创 2018-12-07 13:39:55 · 123 阅读 · 0 评论 -
路一步步走>> 设计模式四:Prototype-原型
package com.test.DPs.ChuangJian.Prototype;/** * 创建型:Prototype-原型 */public class Prototype implements Cloneable{ private String name; public String getName(){ return name; } public void set...原创 2018-12-07 13:41:21 · 200 阅读 · 0 评论 -
路一步步走>> 设计模式五:Singleton-单例(单件)
package com.test.DPs.ChuangJian.Singleton;/** * 创建型:Singleton-单例(单件) * * 单例模式-Singleton * 用途:保证一个类仅有一个实例,并提供一个访问他的全局访问点。 */public class Singleton{ private Singleton(){} private static cl...原创 2018-12-07 13:42:29 · 118 阅读 · 0 评论 -
路一步步走>> 设计模式六:Adapter-适配器
package com.test.DPs.JieGou.Adapter;/** * 结构型:Adapter-适配器 适配器:作用面为 类+接口 * * 用途: * 将一个类的借口转换成客户希望的另外一个接口。使得原本由于接口不兼容而不能一起工作类可一同工作。 * * 理解: * 在原来的类上提供新功能。主要分为3种: * 类适配:创建新类,继承源类,并实现新接口 ...原创 2018-12-07 13:44:13 · 121 阅读 · 0 评论 -
路一步步走>> 设计模式七:桥接-Bridge
理解的不是很深 。用到在看。package com.test.DPs.JieGou.Bridge;/** * 结构型:Bridge-桥接 桥接:作用面为 对象 * * 用途:将抽象部分与它的实现部分分离,使它们都可以独立的变化。 */interface DrawAPI{ public void drawCircle(int radius, int x, int y);}...原创 2018-12-07 13:46:29 · 128 阅读 · 0 评论 -
路一步步走>> 设计模式八:Composite-组合
package com.test.DPs.JieGou.Composite;/** * 结构型:Composite-组合 组合:作用面为 对象 * * 用途:将对象组合成树形结构以表示“部分-整体”的层次结构。Composite使得用户对单个对象和组合对象的使用具有一致性。 * 常用于-“文件夹”或“树” * */abstract class component{}...原创 2018-12-07 13:47:38 · 120 阅读 · 0 评论 -
路一步步走>> 设计模式九:Decorator-装饰
package com.test.DPs.JieGou.Decorator;/** * 结构型:Decorator-装饰 装饰:作用面为 对象 * * 用途:动态地给一个对象添加一些额外的职责。 * 理解:参考代理类 * 代理类:控制旧类对象的访问和输出结果 * 装饰类:对(旧类)对象添加额外职责 */interface Source{ void method();}...原创 2018-12-07 13:48:40 · 129 阅读 · 0 评论 -
路一步步走>> 设计模式二十三:Template-模板
package com.test.DPs.XingWei.Template;/** * 行为型:Template-模板 外观:作用面为 对象 * * 用途:定义一个操作中的算法骨架,而将一些步骤延迟到子类中。使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤。 * 理解:相对于Strategy模式:接口 和 抽象类。例子:排序和计算。 */abstract clas...原创 2018-12-09 12:40:37 · 150 阅读 · 0 评论 -
路一步步走>> 设计模式二十二:Strategy-策略
package com.test.DPs.XingWei.Strategy;/** * 行为型:Strategy-策略 外观:作用面为 对象 */interface ICalculator{ int calculate(String exp);}abstract class AbstractCalculator{ public int[] split(String exp, Str...原创 2018-12-09 12:37:43 · 152 阅读 · 0 评论 -
路一步步走>> 设计模式二十一:Visitor-访问者
package com.test.DPs.XingWei.Visitor;/** * 行为型:Visitor-访问者 外观:作用面为 对象 * * 用途:表示一个作用于某对象结构中的各元素的操作。 * 它是你可以在不改变各元素的类的前提下定义作用于这些元素的新操作。 * * 理解:动态为被访问者添加新操作。 */interface Visitor{...原创 2018-12-09 12:35:54 · 124 阅读 · 0 评论 -
路一步步走>> 设计模式十二:Proxy-代理
package com.test.DPs.JieGou.Porxy;/** * 结构型:Porxy-代理 代理:作用面为 对象 */interface Source{ void method();}class oldClass implements Source{ @Override public void method(){ }}/** * 用途:为其它对象提供一种...原创 2018-12-08 13:32:44 · 162 阅读 · 0 评论 -
路一步步走>> 设计模式十三:Chain of Responsibility-责任链
package com.test.DPs.XingWei.ChainOfResponsibility;/** * 行为型:Chain of Responsibility-责任链 外观:作用面为 对象 */interface Handler{ void operator();}abstract class AbstractHandler{ private Handler hand...原创 2018-12-08 13:34:33 · 296 阅读 · 2 评论 -
路一步步走>> 设计模式十四:Command-命令
package com.test.DPs.XingWei.Command;/** * 行为型:Command-命令 外观:作用面为 对象 * * 用途:将一个请求封装为一个对象,从而使你可用不同的请求对客户进行参数化; * 将请求排队或记录请求日志,以及支持可撤销操作。 * * 理解:三种关系:发送者 命令 接收者,解耦。发送者关心接收者所做操作结果,而忽...原创 2018-12-08 13:35:43 · 110 阅读 · 0 评论 -
路一步步走>> 设计模式十五:Interpreter-解释器
package com.test.DPs.XingWei.Interpreter;/** * 行为型:Interpreter-解释器 外观:作用面为类 * * 用途:给定一种语言(对象),定义它的文法的一种表示(对象类型),定义一个解释器,这个解释其使用该表示来解释语言中的句子。 * * 理解:语言(对象)+语言表述(对象属性(类型))+解释器解释(属性操作)具体含义 */...原创 2018-12-08 13:37:48 · 153 阅读 · 0 评论 -
路一步步走>> 设计模式十六:Iterator-迭代器
package com.test.DPs.XingWei.Iterator;/** * 行为型:Iterator-迭代器 外观:作用面为 对象 * * 用途:提供一种方法顺序访问一个聚合对象中各个元素,而又不需要暴露该对象的内部表示。 * 理解:一是需要遍历的对象,即聚集对象, * 二是迭代器对象,用于对聚集对象进行遍历访问 */interface Collecti...原创 2018-12-08 13:43:05 · 150 阅读 · 0 评论 -
路一步步走>> 设计模式十七:Mediator-中介者
package com.test.DPs.XingWei.Mediator;/** * 行为型:Mediator-中介者 外观:作用面为 对象 * * 用途:用一个中介对象来封装一系列的对象交互。 * 中介者使个对象不需要显示的相互引用,从而使其耦合松散,而且可独立改变它们之间的交互。 * * 理解:降低类之间耦合。 */interface Mediato...原创 2018-12-08 13:43:50 · 157 阅读 · 0 评论 -
路一步步走>> 设计模式十八:Memento-备忘录
package com.test.DPs.XingWei.Memento;/** * 行为型:Memento-备忘录 外观:作用面为 对象 */class Original{ private String value; public String getValue(){ return value; } public void setValue(String value){...原创 2018-12-08 13:46:41 · 162 阅读 · 0 评论 -
路一步步走>> 设计模式十九:Observer-观察者
package com.test.DPs.XingWei.Observer;import java.util.Enumeration;import java.util.Vector;/** * 行为型:Observer-观察者 外观:作用面为 对象 */interface Observer{ void update();}class Observer1 implement...原创 2018-12-08 13:47:57 · 162 阅读 · 0 评论 -
路一步步走>> 设计模式二十:State-状态
package com.test.DPs.XingWei.State;/** * 行为型:State-状态 外观:作用面为 对象 * * 用途:允许一个对象在其内部状态改变时改变它的行为。对象看起来改变它的类。 * * 理解:通过状态改变(触发、开关)行为;(状态可主动) * 该行为影响某些操作。 */class State{ private String va...原创 2018-12-08 13:48:52 · 180 阅读 · 0 评论 -
路一步步走>> 设计模式十:Facade-外观
package com.test.DPs.JieGou.Facade;/** * 结构型:Facade-外观 外观:作用面为 对象 * * 用途:为子系统的一组接口提供一个一致的界面,Facade模式定义了一个高层接口,使子系统便捷实用。 */public class Facade{ class SubSystem1{ void start(){} void stop(){...原创 2018-12-07 13:49:57 · 136 阅读 · 0 评论