设计模式
文章平均质量分 70
zyh_xf2017
不会,要去学;落后,要去追赶;跌倒,要能爬起来;学无止境,做只打不死的小强,越战越勇!
展开
-
设计模式学习笔记之单例模式
/** * 饿汉式单例模式 *//** * 空间换时间,当类加载时就会创建实例,每次调用时就无需再判断,节省了运行时间 * 饿汉式是线程安全的,虚拟机保证只加载一次,在加载类时不会发生并发。 * @author zhen * */public class EagerSingleton { private EagerSingleton(){}原创 2016-09-01 20:48:42 · 186 阅读 · 0 评论 -
设计模式学习笔记之观察者模式
观察者模式(依赖、发布-订阅) 定义对象间的一种一对多的依赖关系,当一个对象的状态发生变化时,所有依赖于它们的对象都得到通知并自动更新。/** * 观察者获取求职中心消息 * @author zhen * */public interface Observer { public void update(String subMsg); }/** * 具体观察者类原创 2016-09-16 12:32:29 · 342 阅读 · 0 评论 -
设计模式学习笔记之适配器模式
/** * 目标(Target) * @author zhenyonghe *eg.用户已有一个两相的插座,但最近用户又有了一个新的三相插座。用户现在 *已经有一台洗衣机和一台电视机,洗衣机按着三相插座的标准配有三相插头, *而电视机按着两相插座的标准配有两相插头。现在用户想用新的三相插座来使 *用洗衣机和电视机(即使用适配器模式使得两个实例都可以使用三相插排) */public原创 2016-10-10 00:14:43 · 852 阅读 · 0 评论 -
设计模式学习笔记之责任链模式
/** * 处理者(Handler) * @author zhenyonghe *责任链模式 *使多个对象都有机会处理请求,从而避免请求的发送者和接收者之间的耦合 *关系。将这些对象连成一条链,并沿着这条链传递该请求,直到有一个对象处理它为止。 */public interface Handler { public void handleRequest(String number)原创 2016-10-27 23:23:46 · 231 阅读 · 0 评论 -
设计模式学习笔记之命令模式
命令模式(动作、事务) 将一个请求封装为一个对象,从而可用不同请求对客户进行参数化;对请求排队或记录请求日志,以及支持可撤销操作。概念比较绕,通过代码模拟场景更易理解。package DesignPatterns.CommandPattern;/** * 命令接收者接口 * @author zhen * */public interface Receive原创 2016-09-16 11:43:36 · 194 阅读 · 0 评论 -
设计模式学习笔记之装饰模式
/** * 装饰模式(包装器):动态地给对象添加一些额外的职责。 * 即动态扩展一个对象的功能,而不需要改变原始类代码。 * “具体组件”类和“具体装饰”类是该模式最重要的两个角色 * * 抽象组件 * @author zhenyonghe * *eg.假设系统中有一个Bird抽象类以及Bird类的一个子类:Sparrow。 *Sparrow类实现了Bird类的fly方法,使得原创 2016-10-06 16:05:38 · 365 阅读 · 0 评论 -
设计模式学习笔记之外观模式
/** * 外观模式的关键是为子系统提供一个称作外观的类, * 该外观类的实例负责和子系统中类的实例打交道。当 * 用户想要和子系统中的若干个类的实例打交道时,可 * 以代替地和子系统的外观类的实例打交道。 * @author zhenyonghe * */public class Application { public static void main(String[] ar原创 2016-10-28 23:55:18 · 262 阅读 · 0 评论 -
设计模式学习笔记之策略模式
/** * 策略模式(政策):定义一系列算法,一个个封装起来,并且使他们可以相互替换。 * 本模式使得算法可独立于使用它的客户而变化。 * @author zhenyonghe * *///接口封装的算法标识,抽象策略public interface ComputableStrategy { public double computeScore(double[] a);}//具原创 2016-10-08 00:13:35 · 279 阅读 · 0 评论