设计模式
Albert_muk
data analyser
展开
-
设计模式子普通工厂模式
在需要不同的条件产生具有多态性质的一组类时,可以考虑使用工厂类来生成. 优点就是职责简单实现单一,实现具体代码和实现解耦,工厂类则是关键里面包含了具体的逻辑判断,缺点也很明显就是如果产品类多的话一堆逻辑判断还是比较恶心的。看示例代码package com.demo.stragetry.public class FactoryTest { static interface Operatio原创 2017-06-28 10:34:52 · 263 阅读 · 0 评论 -
设计模式之单例模式
单例的作用是保证整个application的生命周期中,在任意一个时刻只存在一个,分为两种模式: 1.饿汉模式 在类加载的时候对象就已经存在public class Singleton { private static Singleton singleton = new Singleton(); public Singleton(){} public Singleton ge原创 2017-06-28 23:01:07 · 192 阅读 · 0 评论 -
设计模式之抽象工厂模式
普通工厂模式下比较重度依赖工厂类,如果想拓展功能则必须对工厂类进行修改,则抽象工厂应运而生,该模式下新建多个工厂类,这样一旦增加功能则只需要增加新的工厂类就ok了,代码如下package com.demo.stragetry;import org.apache.hadoop.classification.InterfaceAudience.Public;import com.sun.corba.se原创 2017-06-28 22:34:41 · 228 阅读 · 0 评论 -
设计模式之建造者模式
建造者模式有点类似建房子,有一个固定的流程,即将一个复杂对象的构造和他的表示分离,使得同样的构造过程可以创建不同的表示。 建造者模式的角色定义,在建造者模式中存在以下4个角色: 1 builder:为创建一个产品对象的各个部件指定抽象接口。 2 ConcreteBuilder:实现Builder的接口以构造和装配该产品的各个部件,定义并明确它所创建的表示,并提供一个检索产品的接口。原创 2017-07-03 11:00:19 · 211 阅读 · 0 评论 -
设计模式之适配器模式
适配器模式将某个类的接口转换成客户端期望的另一个接口表示,目的是消除由于接口不匹配所造成的类的兼容性问题。主要分为三类:类的适配器模式、对象的适配器模式、接口的适配器模式。 类适配器:package com.demo.model.adaptor;public class AdaptorModel { static class Adaptee{ public void spec原创 2017-07-13 10:03:42 · 247 阅读 · 0 评论 -
设计模式
设计模式分为三大类: 1.创建型模式:工厂方法模式、抽象工厂模式、单例模式、建造者模式、原型模式 2.结构型模式:适配器模式、装饰器模式、代理模式、外观模式、桥梁模式、组合模式、享元模式 3.行为模式:策略模式、模板方法模式、观察者模式、迭代子模式、责任链模式、命令模式、备忘录模式、状态模式、访问者模式、中介者模式、解释器模式 其实还有两类:并发型模式和线程池模式转载 2017-06-25 21:43:14 · 166 阅读 · 0 评论 -
设计模式之原型模式
原型模式是通过复制一个已经存在的实例来返回新的实例,被复制的实例就是我们所称的原型,这个原型是可定制的,原型模式多用于创建复杂的或者耗时的实例, 因为这种情况下,复制一个已经存在的实例可以使程序运行更高效,或者创建值相等,只是命名不一样的同类数据.原型模式中的拷贝分为浅拷贝和深拷贝: 浅拷贝: 对值类型的成员变量进行值的复制,对引用类型的成员变量只复制引用,不复制引用的对象. 深拷贝: 对值类型原创 2017-07-03 22:49:35 · 180 阅读 · 0 评论 -
设计模式之装饰器模式
在传统面向对象的软件设计上经常会遇到一些个问题,对一个类或者对象增加功能,一般两种方式实现包括抽象类和接口,抽象类主要适用于”是不是”,而接口则是用于”有没有”,好比如人和老师学生这种属于同一类,都是人则比较适合抽象类来实现。再好比如飞机和鸟不是同一类但是他们有共同的特性fly()则比较适合使用接口来实现。子类通过继承父类的方法同时获取父类的方法和子类自身方法,但是这个方法是静态的,用户不能控制增加原创 2017-06-27 23:13:41 · 272 阅读 · 0 评论 -
设计模式之观察者模式
观察者模式是对象的行为模式,又被称作为发布-订阅模式,它定义了一种一对多的依赖关系,让多个观察者对象同时监听某一个主题对象,在主题对象发生改变时能够自动更新。 观察者模式所涉及的角色有: 1.抽象主题(Subject)角色:抽象主题角色把所有对观察者对象的引用保存在一个聚集(比如ArrayList对象)里,每个主题都可以有任何数量的观察者。抽象主题提供一个接口,可以增加和删除观察者对象,抽象主原创 2017-06-25 21:54:29 · 223 阅读 · 0 评论