设计模式
凤鸣86
这个作者很懒,什么都没留下…
展开
-
Java开发中的23种设计模式详解(转)
设计模式(Design Patterns) ——可复用面向对象软件的基础设计模式(Design pattern)是一套被反复使用、多数人知晓的、经过分类编目的、代码设计经验的总结。使用设计模式是为了可重用代码、让代码更容易被他人理解、保证代码可靠性。 毫无疑问,设计模式于己于他人于系统都是多赢的,设计模式使代码编制真正工程化转载 2015-06-04 21:33:06 · 457 阅读 · 0 评论 -
设计模式(13)--单例模式
这是这个设计模式第十三篇了,本来不打算写单例模式的,因为感觉单例模式简单了,不过经过一番研究发现,其实单例并不简单。接下来就说一说单例模式。 一说实现单例模式的方式,有人说单例模式不就是构造函数私有化,构造静态方法,返回私有化实例吗?其实这里面也是有学问的,下面上一段代码,看看有什么问题:class SingletonIdleMode{ //私有化构造函数 private Si原创 2016-04-14 15:29:23 · 295 阅读 · 0 评论 -
设计模式(10)--组合模式
组合模式主要应用于具有上下级关系,可以组织树状结构的类。 以下就一个模拟收缴全国税收的例子,阐释组合模式。 类图如下: 机构具有添加、删除、收税的方法;城市机构实现所有方法;区县机构实现收税方法; 具体代码如下:package design;import java.util.ArrayList;import java.util.List;/** * @Title: Compon原创 2016-03-23 18:38:04 · 357 阅读 · 0 评论 -
设计模式(3)--适配器模式
UML类图: /** * 解决java类不可以继承多个类的问题 * 与proxy模式比较:proxy类提供的方法是目标类的子集;Adapter类提供了目标类没有的方法 * JDK中的应用: * java.io.InputStreamReader(InputStream) * java.io.OutputStreamWriter(OutputStream)* @Title: Adapte原创 2016-02-04 12:57:51 · 339 阅读 · 0 评论 -
设计模式(2)---Builder模式
UML类图: /** * builder design model * 适合某些类实现比较复杂,分解到builder中逐步实现 */public class BuilderDesign{ /**汽车生产线 */ class CarBuilder{ Car car = new Car(); public void buildWhile()原创 2016-02-02 16:15:27 · 341 阅读 · 0 评论 -
设计模式(1)---工厂模式
UML类图如下: “`/** * 工厂设计模式 * 一个抽象工厂类,可以派生出多个具体产品类。 * 可以使用工厂模式代替使用new方法返回对象。 * JDK中应用: * java.util.Calendar#getInstance() * java.sql.DriverManager#getConnection() */ public class FactoryDes原创 2016-02-02 16:11:33 · 365 阅读 · 0 评论 -
设计模式(9)--观察者模式
package design;import java.util.ArrayList;import java.util.List;/***观察者模式是典型的订阅-发布消息的模式,主要由抽象主题,具体主题,抽象观察者和具体观察者组成。**/public class WatcherDesign { /* * 抽象主题 * 管理动物的人 */ publi原创 2016-03-01 15:38:06 · 325 阅读 · 0 评论 -
设计模式(12)--备忘录模式
继续之前的设计模式编写流程:首先介绍一下备忘录模式,之后通过一个小例子,熟悉一下模式的使用。 备忘录模式其实在使用的过程中还是挺多的,作为行为模式之一,主要用于快速备份当前对象状态,然后在必要时刻恢复对象状态,有点像虚拟机的快照。该模式有三个对象如下: 发起人:需要备忘的对象; 备忘录:需要备忘的属性; 管理者:备忘录的管理者,不对备忘录的内容进行操作; 下面通过一个小例子熟悉一下该模式:原创 2016-04-05 17:26:26 · 305 阅读 · 0 评论 -
设计模式(11)--命令模式
命令模式是行为模式的一种,它主要是将请求者和命令执行者之间解藕。在这里我们很容易联想到web应用分层的思想,请求到action,action调用service执行具体的操作。为了更好的理解command模式,举一个电梯的例子: 1.Uml类图如下 2.代码如下:package design.command;/** * @Title: Command.java * @Package原创 2016-03-29 11:35:02 · 298 阅读 · 0 评论 -
设计模式(8)--模板模式
package design;/** * 模板模式:基本方法在模板类中生成,具体方法类在子类中生成 * 与策略类的区别:策略类实现顶级类为接口,子类实现接口,模板为实现顶级类为抽象类,具体方法为protect方法,访问级别受限制* @Title: TemplateDesign.java * @Package design * @author zfy1355_gmail_com * @原创 2016-02-29 16:52:15 · 317 阅读 · 0 评论 -
设计模式(7)--责任链模式
/** * 责任链模式,将每一道工序设计好,相比建造者模式的生产线固定,责任链模式可以动态调整执行顺序。 * tomcat中的过滤器为典型的责任链模式。* @Title: ChainOfResponsibilityDesign.java * @Package design * @author zfy1355_gmail_com * @date 2016年2月26日 下午12:40:4原创 2016-02-26 12:50:22 · 362 阅读 · 0 评论 -
设计模式(6)---状态模式
package design;/** * * 状态模式:强调状态的自动改变,不需要外部进行干涉。 * 与策略模式区别:不存在外部设置状态方法,状态的改变由内部环境类进行改变* @Title: StateDesign.java * @Package */public class StateDesign { /*环境类*/ class ButtonSwitch{原创 2016-02-22 17:08:22 · 293 阅读 · 0 评论 -
设计模式(5)--策略模式
/** * * 策略模式是创造模式的一种,它将算法进行封装,所有算法继承算法接口,外部调用只需要调用接口方法就可以了。 * 与简单工厂的区别:简单工厂注重对象的封装,策略注重算法的封装 * 以下用策略模式实现简单的计算器* @Title: StrategeDesign.java * @Package */public class StrategeDesign { clas原创 2016-02-18 18:20:28 · 297 阅读 · 0 评论 -
设计模式(4)--静态代理模式
/** * 静态代理模式* @Title: ProxyDesign.java * @Package */public class ProxyDesign { /** * 目标接口类 * @Title: ProxyDesign.java * @Package */ interface Target { public原创 2016-02-15 15:56:24 · 324 阅读 · 0 评论 -
Reactor设计模式
这个设计模式目前理解共有4个角色:1.初始化事件管理器:用于注册事件,移除事件2.事件分离器:用于接收事件,分配事件到事件处理器中3.事件处理器:处理事件4.事件:提供系统输入或系统消费。事件处理可以阻塞,可以多线程处理。...原创 2018-10-19 18:29:54 · 447 阅读 · 0 评论