![](https://img-blog.csdnimg.cn/20201014180756918.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
设计模式
文章平均质量分 77
poyuan97
这个作者很懒,什么都没留下…
展开
-
Java建造者模式以及常见误区错误分析纠正
设计模式复习,代码是最好的说明。 注意: 在写建造者模式的时候,我发现大部分文章都犯了不少错误,猜测应该是由于缺乏独立思考而又都参考了同一篇含错误的源文章导致的。现总结如下: 问题1:混淆director和builder的关系,如http://blog.csdn.net/zhengzhb/article/details/7375966 解决:builder的接口应该是定原创 2017-09-24 14:00:11 · 620 阅读 · 0 评论 -
Java原型模式
设计模式复习,代码是最好的说明。 定义:用原型实例指定创建类的种类,并通过拷贝这些原型创建新的对象,属于创建类模式。 UML:略 原型模式主要用于对象的复制,优点是:提升性能和简化创建对象过程。它需要满足两个条件:实现cloneable接口和重写clone方法。有两种拷贝方式:浅拷贝和深拷贝,区别在于浅拷贝只拷贝基本数据类型,其余为引用。 代码: 浅拷贝: class Prototyp原创 2017-09-25 12:22:28 · 179 阅读 · 0 评论 -
Java模版方法模式
设计模式复习,代码是最好的说明。 定义:模版方法模式定义一个操作中的算法框架,而将一些步骤延迟到子类中,使得子类可以不改变算法的结构即可重定义该算法中的某些特点步骤,属于行为类模式。 UML: 代码:这里放一个泡茶的例子 /* 为子类提供一个算法框架 */ public abstract class RefreshBeverage { public final vo原创 2017-09-26 09:14:16 · 177 阅读 · 0 评论 -
Java中介者模式
设计模式复习,代码是最好的说明。 定义:用一个中介者对象封装一系列的对象交互,中介者使得使各对象不需要显式地相互作用,从而使耦合松散,而且可以独立地改变它们之间的交互,属于行为类模式。 UML: 代码: public class mediatorMode { public static void main(String[] args) {原创 2017-09-27 16:12:24 · 260 阅读 · 0 评论 -
Java观察者模式以及与订阅发布者模式区别
设计模式复习,代码是最好的说明。 定义:观察者模式定义对象间一种一对多的依赖关系,使得当每一个对象改变状态,则所有依赖于它的对象都会得到通知并自动更新,属于行为类模式。 注意:观察者模式和发布订阅模式是有区别的,区别在于观察者模式是由目标进行调度,而发布订阅模式是由独立的调度中心进行调度,可以说发布订阅模式是观察者模式进一步解耦,在实际中被大量运用的一种模式。 UML: 代原创 2017-09-28 16:15:28 · 4231 阅读 · 0 评论 -
Java单例模式
设计模式复习,代码是最好的说明。 定义:确保一个类只有一个实例,而且自行实例化并向整个系统提供这个实例。属于创建类模式。 要素:1、私有的构造方法 2、指向自己实例的静态引用 3、以自己实例为返回值的公有的方法 懒汉: public class Singleton { private static Singleton singleton; private Singl原创 2017-09-21 16:24:52 · 164 阅读 · 0 评论 -
Java工厂模式(简单工厂、工厂方法、抽象工厂)
设计模式复习,代码是最好的说明。 简单工厂模式: 定义:简单工厂模式是由一个工厂对象决定创建出哪一种产品类的实例,属于创建型模式。 UML图:(图是用staruml画的,接口有些特别) 代码: public class FactoryMode { public static void main(String[] args) { Factory f原创 2017-09-22 14:34:51 · 263 阅读 · 0 评论 -
Java访问者模式以及在访问者模式中使用反射
设计模式复习,代码是最好的说明。 定义:封装某些作用于某种数据结构中各元素的操作,它可以在不改变数据结构的前提下定义作用于这些元素的新的操作,属于行为类模式。 UML: 代码: abstract class Element{ public abstract void accept(IVisitor visitor); public abstract void原创 2017-10-15 09:59:17 · 288 阅读 · 0 评论