![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
设计模式
S_H-A_N
这个作者很懒,什么都没留下…
展开
-
设计模式(一):简单工厂模式
最近在看大话设计模式,为了加深印象,记录一下学习过程。第一个模式:简单工厂模式,此模式为大话设计模式中第一个设计模式,虽然此模式不属于23种GOF设计模式之一。简单工厂模式中包含的角色:工厂类:工厂类利用多态的特性,可以根据客户端的需求,创建不同的具体实现类,并返回一个父类对象抽象类(父类):如果一些类都需要有同样的方法,可以为这些类抽出一个抽象类作原创 2017-05-26 22:25:29 · 352 阅读 · 0 评论 -
设计模式(十一):适配器模式
不写了!这篇文章已经写得很好了!http://blog.csdn.net/zhangjg_blog/article/details/18735243原创 2017-06-13 21:39:52 · 223 阅读 · 0 评论 -
设计模式(十):观察者模式
观察者模式:又叫发布-订阅模式,定义了一对多的依赖关系,让多个观察者对象同时监听某一个主题对象。这个主题对象在状态发生变化时,会通知所有观察者对象,使它们能够自动更新自己。观察者模式结构图:例子:假如学生A和学生B正在玩手机,然后让班长观察老师是否过来,来的时候通知他们赶紧放下手机,开始学习学生A和学生B是观察者,班长是通知者1、创建观察者类/**原创 2017-06-10 14:07:19 · 236 阅读 · 0 评论 -
设计模式(九):建造者模式
建造者模式:将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。结构图:(1)Builder:建造者,为创建一个Product对象的各个部件指定的抽象接口。(2)ConcreteBuilder:具体建造者,构造和装配各个部件(3)Director:指挥者,包含一个建造者的引用,并将构建和装配各个部件的过程封装在一个方法中,客户端告诉指挥者需要建原创 2017-06-09 22:54:04 · 292 阅读 · 0 评论 -
设计模式(十三):迭代器模式
迭代器模式:提供一种方法顺序访问一个聚合对象中的各个元素,而又不暴露该对象的内部表示。(1)Iterator:迭代器抽象类,用来迭代容器。(2)ConcreteIterator:具体的迭代器,包含一个ConcreteAggregate容器的引用,实现容器的迭代。(3)Aggregate:具体聚集类,也就是容器类。(4)ConcreteAggregate:具体聚集类。原创 2017-06-20 21:01:55 · 277 阅读 · 0 评论 -
设计模式(八):外观模式
外观模式:为子系统中的一组接口提供一个一致的界面,此模式定义了一个高层接口,这个接口使得这一子系统更加容易使用。外观模式结构图:例子:1、创建外观类,煎饼果子类/** * Facede外观类,煎饼果子类 */public class Pancake {}2、创建子系统类(1)生菜类/** * Subclass子系统1,生菜类 */public c原创 2017-06-08 22:46:55 · 219 阅读 · 0 评论 -
设计模式(四):代理模式
代理模式结构图:(1)Subjcet:定义了RealSubject和Proxy共用的接口,委托者需要代理去做的事情的接口(2)RealSubject:Proxy所代表的真实实体,也可以理解为委托方(3)Proxy:代理者,处理委托方交办的事情例子:假如你有一个朋友要过生日了,你想送她一部手机做为生日礼物,而你想给她一个惊喜,暂时不想让她知道是谁送给她的,然后你通原创 2017-06-03 17:59:56 · 268 阅读 · 0 评论 -
设计模式(七):模板方法模式
模板方法模式结构图:例子:1、定义模板方法类/** * AbastractClass模板方法 */public abstract class Question { //问题1 public void questionOne(){ System.out.println("问题1:1+1=?"); System.out.pri原创 2017-06-06 23:22:37 · 230 阅读 · 0 评论 -
设计模式(三):装饰者模式
装饰者结构图:(1)Component:被装饰者的抽象类或接口,定义了添加职责的方法(2)ConcreteComponent:被装饰者的具体实现类,如果只有一个被装饰者,ConcreteComponent和Component可以合二为一(3)Decorator:装饰者父类,继承Component被装饰者,并且包含一个被装饰者的引用(4)ConcreteDecorat原创 2017-06-01 22:46:17 · 266 阅读 · 0 评论 -
设计模式(二):策略模式
策略模式结构图:(1)Strategy策略类,定义所有支持的算法的公共接口(2)ConcreteStrategy具体策略类,Strategy的实现类,包含了具体业务逻辑的实现(3)Context上下文:类中包含一个Strategy的引用,根据客户端传递的参数,返回不同的具体策略类ConcreteStrategy下面来看例子:马上就是京东的618了,又到了买买买的原创 2017-06-01 21:27:07 · 263 阅读 · 0 评论 -
设计模式(六):原型模式
首先,学习原型模式需要了解JAVA中的深克隆与浅克隆。原型模式结构图:(1)Prototype:原型类,会声明一个克隆自身的方法,在Java中已经有定义好的接口Cloneable(2)ConcretePrototype:具体原型类,实现克隆自身的操作,可代替使用new创建自身对象例子:(1)创建一个Money类,实现Cloneable接口public原创 2017-06-05 23:18:37 · 247 阅读 · 0 评论 -
设计模式(五):工厂方法模式
设计模式(一):简单工厂模式之前学习了简单工厂模式,现在来学习一下工厂方法模式。如果把简单工厂模式实现的计算器改为工厂模式,结构如下:(1)首先Operation和AddOperation...等操作不变/** * 操作抽象类 */public abstract class Operation { public abstract double c原创 2017-06-05 22:41:39 · 253 阅读 · 0 评论 -
设计模式(十二):备忘录模式
备忘录模式:在不破坏封装性的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态。这样以后就可将该对象恢复到原先保存的状态。(1):Originator:负责实例化一个备忘录Memento类,记录当前时刻它的内部状态,作为备份。(2):Memento:备忘录类,Originator的状态备份(3)Caretaker:管理者类,管理备忘录类,通过caretaker对备忘录设原创 2017-06-14 20:51:53 · 292 阅读 · 0 评论