![](https://img-blog.csdnimg.cn/20201014180756913.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Design Pattern
文章平均质量分 69
john_cena
这个作者很懒,什么都没留下…
展开
-
【设计模式】责任链
责任链设计模式一般原则:当请求被责任链中某个对象处理了,则停止后续调用;否则,将请求继续往下传递。变体:请求可以被责任链中某几个对象处理,也可以分别被每个对象处理一遍。 Sample1:日志记录为例,任务会依次传递到每一个对象上,至于是否处理则由具体对象来决定: DEBUGE级别的,只往控制台输出;NOTICE级别的,往控制台输出,并发送邮件;ERROR...原创 2014-07-22 00:38:48 · 86 阅读 · 0 评论 -
【设计模式】单例模式
* 一些场景需要确保只有唯一的对象存在,如:线程池、网络连接、缓存等 package pattern.singleton;//饥饿式-多线程环境下仍然安全public class Eager { public static Eager instance = new Eager(); private Eager(){} public static Ea...原创 2014-08-03 16:52:25 · 47 阅读 · 0 评论 -
【设计模式】工厂模式
工厂模式最核心的功能就是完成对象的创建;该模式可以避免直接使用new操作符在客户端创建对象;找出会变化的地方,将其从不变的代码中分离出来! 工厂模式的应用主要分以下4种: 一、静态工厂通过静态方法返回对象。静态方法可以接收参数,然后根据传入的参数决定返回的对象。 二、简单工厂将工厂组合到客户端,由客户端调用工厂来获取对象。 * 简单工...原创 2014-08-02 23:24:16 · 105 阅读 · 0 评论 -
【设计模式】装饰模式
装饰模式:动态的将责任附加到对象上对于扩展性而言,装饰模式比继承更具有弹性,因为装饰模式利用组合关系关键地方:让装饰者与被装饰者实现同一个接口,或者继承同一个抽象类,目的是为了让它们具有统一的类型类型统一了,方法就可以接收所有的子类型,然后在运行时动态绑定到具体的子类对象上 ===》接口:让装饰者与被装饰者具有统一的类型package pattern.decor...原创 2014-07-29 00:53:04 · 61 阅读 · 0 评论 -
【设计模式】观察者
观察者模式:当某个事件发生时,通知客户端进行响应,如监听器的原理,即可采用此模式来实现。观察者对主题中某些属性的改变感兴趣,或者对某个事件的发生感兴趣。这些变化将由主题通知观察者。观察者需要先注册到主题中,只要注册到主题中,当事件发生时就会得到通知。当不关心事件是否发生时,可以取消注册。 ===》主题package pattern.observer;pu...原创 2014-07-28 00:50:31 · 72 阅读 · 0 评论 -
【设计模式】策略模式
策略模式为了满足不同子类具有不同的行为而设计而且,它可以提供行为/算法的互换,使行为具有可变性而且,支持扩展新的行为而不影响原有的代码 Sample1: package pattern.strategy;/** * 策略模式 * 实现一组可相互切换的行为类/算法簇 */public class StrategyExample { publ...原创 2014-07-27 22:21:33 · 47 阅读 · 0 评论 -
【设计模式】一般性指导原则
使用某个设计模式先问自己3个问题:1. 这个模式是干什么用的?2. 不使用这个模式我会怎么做?3. 用了这个模式我又会怎么做?可以带来哪些好处? 针对接口编程,而不是针对具体编程; 针对接口编程,利用多态,可以在运行时与任何(新)实现类进行绑定,以此达到“对修改关闭”的目的。 变化的地方使用接口进行引用,在运行时动态绑定到某个子类上; 多用组合,少用...原创 2014-07-27 21:22:37 · 147 阅读 · 0 评论 -
【设计模式】建造者
package pattern.builder;public class BuilderDemo { public static void main(String[] args) { NutritionFacts cocaCola = new NutritionFacts.Builder(240, 8) .calories(100).sodium(35...原创 2014-07-27 13:20:40 · 58 阅读 · 0 评论 -
【设计模式】工厂&工厂方法&模板方法
工厂:根据不同条件返回不同类型的对象。 工厂方法:通过子类复写父类的(抽象)方法,返回具体对象。 模板方法:定义通用的程序执行流程,某些不确定的步骤在父类中使用抽象方法进行定义,具体实现交给子类。 package pattern.factorymethod;import java.util.Arrays;import java.util.HashSet;...原创 2014-07-27 01:32:32 · 153 阅读 · 0 评论 -
【设计模式】命令模式
命令模式:通过订单实现服务员与厨师的完全解耦服务员不关心订单的具体内容是什么,只需要将订单交给厨师即可角色划分订单:Command服务员:Invoker厨师:Receiver 使用命令模式可以实现工作队列,将接收到的命令放到BlockingQueue中任务执行者从BlockingQueue中获取任务即可 package pattern....原创 2014-08-03 22:52:40 · 61 阅读 · 0 评论