![](https://img-blog.csdnimg.cn/20201014180756913.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
设计模式
Scott的博客
天行健,君子以自强不息,地势坤,君子以厚德载物
展开
-
命令模式
一、概述命令模式支持请求调用者与请求接收者之间的解耦。用途:命令可以将元算块打包(一个接收者一组动作),然后将它传来传去,就像一般的对象一样。即使在命令对象创建许久之后依然可以被调用。事实上,这甚至可以在不同的线程中被调用。可以利用这些特性衍生出一些应用。schedule、线程池、工作队列等。工作队列:在某一段添加命令,然后另一端是线程,线程从队列中取出一个命令元素,然后执行命令元素的 e...原创 2019-12-10 10:48:10 · 120 阅读 · 0 评论 -
单例模式问题详解
单例的不知道怎么讲,直接上代码吧,下面的代码块中保证了该类不会被外部创建,因为是私有化的构造方法,覆盖了默认的构造方法,并且没有提供其它的构造方法。所以只能通过内部创建实例,使用一个静态的被volatile修饰的变量来装载该类的实例。通过同步来保证在多线程环境下的唯一实例,通过双重检查减少同步时的性能消耗。/** * 单例模式 * * 使用 synchronized 保证在多线程下依旧...原创 2019-11-19 10:49:04 · 156 阅读 · 0 评论 -
设计模式之装饰者模式
一、概述为什么需要装饰者模式?在不允许直接修改原代码的情况下进行扩展时需要使用装饰者模式。装饰者模式动态的将责任(行为)附加到对象身上,若要扩展功能,装饰者提供了比继承更有弹性的替代方案。 这就是设计中的开放——关闭原则,对扩展开放,对修改关闭。以下时关于装饰者模式的一些相关特征:装饰者与被装饰者拥有相同的超类 可以用一个或多个装饰者去包装一个对象 装饰者和被装饰者拥有相同的超类,所以...原创 2019-10-18 11:03:02 · 101 阅读 · 0 评论 -
设计模式之观察者模式(二)——Java内置方式实现
观察者模式可以使用两种方式实现,另外一种见https://blog.csdn.net/wgs_93/article/details/102587641这里使用Java内置的方式来实现。该例子中使用的场景是公司与公司所属的各事业部之间的决定通信,公司发布公告通知,各事业部在接收到通知后分别做出的处理。被观察者(公司):package notice2;import java.util...原创 2019-10-17 11:25:33 · 108 阅读 · 0 评论 -
开发模式之观察者模式(一)——非Java内置方式
一、概述观察者模式的实现可以分为两种,这里先使用第一种实现方式(非 Java 内置方式)。观察者模式简单来说就是“观察者”监听“被观察者”,一旦“被观察者”发生了变更,则会被“观察者”发现,那么“观察者”就可以根据“被观察者”的变更做出相应的处理。实际上这里所谓的监听,是由被观察者主动通知观察者的。在观察者模式中,比较重要的地方:被观察者的实现,定义观察者集合,定义观察者的增加、删除、...原创 2019-10-16 16:43:03 · 179 阅读 · 0 评论