![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
设计模式
King_Kwin
这个作者很懒,什么都没留下…
展开
-
设计模式之九 迭代器与组合模式
迭代器与组合模式定义 迭代器模式提供一种方法顺序访问一个聚合对象中的各个元素,而又不暴露其内部的表示。组合模式允许你将对象组合成树形结构来表现“整体/部分”层次结构。组合能让客户以一致的方式处理个别对象以及对象组合 例子 废话不多说,先看具体案例煎饼屋和餐厅合并了,现在需要使用新的菜单,但是两者菜单实现的结构不太一样,煎饼屋使用ArrayList记录菜单,餐厅使用...原创 2018-09-12 14:56:26 · 274 阅读 · 0 评论 -
设计模式之十 状态模式
状态模式 定义状态模式允许对象在内部状态改变时改变它的行为,对象看起来好像修改了它的类。 例子我们使用《Head First 设计模式》中的糖果机例子:糖果机有NoQuarter、HasQuarter、Sold、SoldOut等状态,当然,我们后期可以根据需求加入Winner状态。首先,让我们创建一个接口,让所有的状态都必须实现这个接口:/** * 状态...原创 2018-09-13 16:02:30 · 217 阅读 · 0 评论 -
设计模式之二 观察者模式
观察者(Observer)模式1) 例子:报纸和杂志的订阅报社的业务就是出版报纸 向某家报社订阅报纸,只要他们有新报纸出版,就会给你送来。只要你是他们的订户,你就会一直收到新报纸。、 当你不想看到报纸的时候,取消订阅,他们就不会再送新报纸来。 只要报社还在运营,就一直会有人(或单位)向他们订阅或取消订阅报纸。出版者(Subject) + 订阅者(Observer) =...原创 2018-09-10 10:30:52 · 130 阅读 · 0 评论 -
设计模式之七 适配器模式与外观模式
适配器模式与外观模式定义 适配器模式将一个类的接口,转换成客户期望的另一个接口。适配器让原本接口不兼容的类可以合作无间。形象的说,如果你在国内使用一台美版的笔记本,那么你必然需要一个交流电适配器,适配器的作用就是将一种接口转换成另一种接口,以符合客户的期望。这个模式可以通过创建适配器进行接口转换,让不兼容的接口变成兼容。这可以让客户从实现的接口解耦。外观模式提供了一个统一的...原创 2018-09-11 10:12:56 · 132 阅读 · 0 评论 -
设计模式之六 命令模式(封装调用)
命令模式(封装调用)定义命令模式将“请求”封装成对象,以便使用不同的请求、队列或者日志来参数化其他对象。命令模式也支持可撤销的操作。 优缺点应用场景web服务器的队列请求,以及应用的日志请求 。例子命令模式可将“动作的请求者”从“动作的执行者”对象中解耦。客户负责创建命令对象。public class Client{ public Comm...原创 2018-09-10 16:31:04 · 163 阅读 · 0 评论 -
设计模式之五 单件模式
单件模式定义单件模式确保一个类只有一个实例,并提供一个全局访问点。优缺点优点:全局变量需要在程序启动时创建好对象(有的JVM的实现是:在用到的时候创建对象),消耗不必要的资源,而单件模式可以在我们需要时才创建对象,和全局变量一样方便,又没有全局变量的缺点。应用场景有一些对象我们其实只需要一个,比方说:线程池(threadpool)、缓存(cache)、对话框、偏好设置和注...原创 2018-09-10 13:40:23 · 265 阅读 · 0 评论 -
设计模式之四 工厂模式(简单工厂、工厂方法、抽象工厂)
工厂模式定义简单工厂其实并不是一个设计模式,反而比较像是一种编程习惯。有些开发人员把这个编程习惯误认为是“工厂模式”(Factory Pattern)。所有工厂模式都用来封装对象的创建。工厂方法模式(Factory Method Pattern)通过让子类决定该创建的对象是什么,来达到将对象创建的过程封装的目的。工厂方法模式定义了一个创建对象的接口,但由子类决定要实例化的类是哪...原创 2018-09-10 11:04:41 · 117 阅读 · 0 评论 -
设计模式之三 装饰者模式
装饰者模式定义装饰者模式动态地将责任附加到对象上。若要扩展功能,装饰者提供了比继承更有弹性的替代方案。装饰者模式的目标是允许类容易扩展,在不修改现有代码的情况下,就可搭配新的行为。优、缺点优点1、装饰者模式可以提供比继承更多的灵活性2、可以通过一种动态的方式来扩展一个对象的功能,在运行时选择不同的装饰器,从而实现不同的行为。3、通过使用不同的具体装饰类以及这些装饰...原创 2018-09-10 10:38:37 · 243 阅读 · 0 评论 -
设计模式之一 策略模式
策略模式定义 策略模式定义了算法族,分别封装起来,让他们之间可以相互替换,此模式让算法的变化独立于使用算法的客户。应用场景在开发过程中常用到这种情况,实现一个功能有多种算法或策略,我们需要根据不同的应用场景选择不用的算法。所以,我们需要把一个类A中经常变化或者将来可能改变的部分抽取出来,并为之实现一个接口B,类A中只需要拥有这个接口B的句柄,根据需要时,为类A注入接口B的具体实现...原创 2018-09-10 10:08:40 · 127 阅读 · 0 评论 -
设计模式之八 封装算法
封装算法定义模板方法模式在一个方法中定义一个算法的骨架,而将一些步骤延迟到子类中。模板方法使得子类可以在不改变算法结构的情况下,重新定义算法中的某些步骤。 优缺点 应用场景 Java数组类的设计者提供给我们一个方便的模板方法用来排序。public static void sort(Object[] a) { Object aux[] = (Object[...原创 2018-09-11 15:43:43 · 1000 阅读 · 0 评论