设计模式
厚积_薄发
梦想还是要有的,万一实现了呢?
Stay hungry, stay foolish. --Steve Jobs
展开
-
设计模式趣解
1、FACTORY?追MM少不了请吃饭了,麦当劳的鸡翅和肯德基的鸡翅都是MM爱吃的东西,虽然口味有所不同,但不管你带MM去麦当劳或肯德基,只管向 服务员说“来四个鸡翅”就行了。麦当劳和肯德基就是生产鸡翅的Factory 工厂模式:客户类和工厂类分开。消费者任何时候需要某种产品,只需向工厂请求即可。消费者无须修改就可以接纳新产品。缺点是当产品修改时,工厂类也要做相 应的修改。如:如何创建及如何向客户转载 2016-07-31 20:03:42 · 343 阅读 · 0 评论 -
Strategy 策略模式 在 Spring 开发中的应用 包括事务管理,日志管理(logger),IoC容器根据bean定义的内容实例化等
Strategy模式的本意是封装一系列可以互相替换的算法逻辑,使得具体算法的演化独立于使用它们的客户端代码。 为了理解为什么要这么做,我们不妨来看一个具体的场景:在一个信贷系统中,通常会提供多种还款方式,比如等额本金还款方式,等额本息还款方式,一次还本付息方式等等, 那么,针对每一位顾客所选择的还款方式,我们就需要按照这些还款方式的具体逻辑为顾客计算每次所需要归还的本金以及利息的额度,转载 2016-09-24 17:04:55 · 1062 阅读 · 1 评论 -
23种设计模式 第三部分 关系模式(5)责任链模式
理解 责任链模式(Chain of Responsibility),有多个对象,每个对象持有下一个对象的引用,则可以形成一条链,请求在这条链上传递,直到某个对象决定处理该请求。但是发出请求者并不知道哪个对象处理了该请求,因此,责任链模式可以实现,在隐瞒客户的情况下,对系统进行动态的调整。AbstractHandler有get和set Handler的方法,方便MyHandler设置原创 2016-09-17 22:14:34 · 584 阅读 · 0 评论 -
java中实现单例模式的几种方式,简单易懂
一、饿汉式单例类public class Singleton { private Singleton(){ } private static Singleton instance = new Singleton(); private static Singleton getInstance(){ return ins原创 2016-08-14 09:39:19 · 5642 阅读 · 0 评论 -
原型模式-Prototype
定义:用原型实例指定创建对象的种类,并通过拷贝这些原型创建新的对象。类型:创建类模式类图:原型模式主要用于对象的复制,它的核心是就是类图中的原型类Prototype。Prototype类需要具备以下两个条件:实现Cloneable接口。在java语言有一个Cloneable接口,它的作用只有一个,就是在运行时通知虚拟机可以安全地在实现了此接口的类上使用clo转载 2016-08-13 15:55:18 · 346 阅读 · 0 评论 -
23种设计模式 第三部分 关系模式(1)策略模式
理解策略模式定义了一系列算法,并将每个算法封装起来,使他们可以相互替换,且算法的变化不会影响到使用算法的客户。需要设计一个接口,为一系列实现类提供统一的方法,多个实现类实现该接口,设计一个抽象类(可有可无,属于辅助类),提供辅助函数,关系图如下图中ICalculator提供统一的方法,AbstractCalculator是辅助类,提供辅助方法,接下来,依次实原创 2016-08-24 23:34:32 · 630 阅读 · 0 评论 -
23种设计模式 第二部分 结构模式(7)享元模式
理解享元(Flyweight)模式,顾名思义,和分享有关。享元模式可实现对象的共享,即共享池。当对象多内存小,可以共享降低内存的开销,通常与工厂模式一起使用。维基百科A flyweight is an object that minimizes memory use by sharing as much data as possible with other similar obj原创 2016-08-23 23:22:45 · 438 阅读 · 0 评论 -
23种设计模式 第二部分 结构模式(6)组合模式
理解组合模式有时又叫部分-整体模式在处理类似树形结构的问题时比较方便。实现import java.util.Enumeration;import java.util.Vector;public class TreeNode { private String name; private TreeNode parent; private Vector chi原创 2016-08-22 23:40:24 · 721 阅读 · 0 评论 -
23种设计模式 第二部分 结构模式(5) 桥接模式
理解桥,就是连接两个不同的东西嘛。桥接模式就是把抽象和具体分开,让它们都能独立的变化,互相没有影响。用意是:将抽象化与实现化解耦,使得二者可以独立变化。我们用JDBC时,切换数据库时,代码基本不用改,其实就是用的bridge 模式。维基百科:"Bridge pattern is meant to decouple an abstraction from its implementati原创 2016-08-22 00:06:20 · 386 阅读 · 0 评论 -
23种设计模式 第三部分 关系模式(4)迭代子模式
理解迭代器模式就是顺序访问聚集中的对象,一般来说,集合中非常常见,如果对集合类比较熟悉的话,理解本模式会十分轻松。这句话包含两层意思:一是需要遍历的对象,即聚集对象,二是迭代器对象,用于对聚集对象进行遍历访问。实现两个接口:public interface Iterator { //前移 public Object previous();原创 2016-08-30 22:50:02 · 450 阅读 · 0 评论 -
23种设计模式 第二部分 结构模式(4) 外观模式
PatternIntentAdapterConverts one interface to another so that it matches what the client is expectingDecoratorDynamically adds responsibility to the interface by wrapping the origi原创 2016-08-19 23:54:37 · 384 阅读 · 0 评论 -
23种设计模式 第三部分 关系模式(3)观察者模式
理解观察者模式定义了对象之间的一对多依赖,这样一来,当一个对象改变状态时,她的所有依赖者都会受到通知并自动更新。简单来讲就一句话:当一个对象变化时,其它依赖该对象的对象都会收到通知,并且随着变化。MySubject类就是我们的主对象(类似于期刊),Observer1和Observer2是依赖于MySubject的对象(类似于订阅者)。当MySubject变化时,Observer原创 2016-08-29 23:15:01 · 443 阅读 · 0 评论 -
23种设计模式 第二部分 结构模式(3) 代理模式
理解租房子找中介其实就是找代理。多出一个代理类来,对已有对象做相关控制的操作。在租房子的时候回去找中介,为什么呢?因为你对该地区房屋的信息掌握的不够全面,希望找一个更熟悉的人去帮你做,此处的代理就是这个意思。再如我们有的时候打官司,我们需要请律师,因为律师在法律方面有专长,可以替我们进行操作,表达我们的想法。实现首先定义一个接口。public interface Sourc原创 2016-08-18 23:58:43 · 410 阅读 · 0 评论 -
23种设计模式 第三部分 关系模式(2)模板方法模式
理解模板方法定义了一个算法的步骤,并允许子类为一个或多个步骤提供实现。泡茶和泡咖啡,步骤很相似:两种饮品其分别的做法如下代码:public class Coffee { public void PrepareRecipe() { //烧水 BoilWater(); //冲咖啡原创 2016-08-28 20:50:32 · 581 阅读 · 0 评论 -
23种设计模式 第二部分 结构模式(2) 装饰器模式
//与主题无关:这里引用下今天看到解释 接口 的一句话:接口作为返回值的一个经典的应用是使用ArrayList时,他的iterator方法会返回一个Iterator接口。这样开发者使用it.next方法,再不用去研究每一种list是怎么实现查询了。理解装饰器模式,其实就是给原来的类添加一些新的东西或者功能。比如一杯咖啡,可以加糖,加冰,加牛奶等等。其实利用继承也是可以实现这些功能,只不过很原创 2016-08-17 23:34:25 · 438 阅读 · 0 评论 -
23种设计模式 第二部分 结构模式(1) 适配器模式
理解适配器模式是将某个类的接口,转换成需要的另一些接口。说白了,其实就是接口的转换工作,这个有点像是usb转为其他接口的转换器。 目的是消除两个接口的不兼容性。比如,之前我的台式机耳机坏了,用了个usb转耳机的转换器就行了,这个就是用适配器模式的实际生活小例子。 简单理解成 源 -----> 经过适配器 连接 -----> 目标原创 2016-08-17 00:03:14 · 452 阅读 · 0 评论 -
23种设计模式简介
设计模式的分类总体来说设计模式分为三大类:创建型模式,共五种:工厂方法模式、抽象工厂模式、单例模式、建造者模式、原型模式。结构型模式,共七种:适配器模式、装饰器模式、代理模式、外观模式、桥接模式、组合模式、享元模式。行为型模式,共十一种:策略模式、模板方法模式、观察者模式、迭代子模式、责任链模式、命令模式、备忘录模式、状态模式、访问者模式、中介者模式、解释器模式。原创 2016-08-17 22:31:40 · 323 阅读 · 0 评论 -
23种设计模式 第三部分 关系模式(6)命令模式
理解命令模式即按照客户端传入的要求完成特定的功能。将来自客户端的请求传入一个对象,从而使你可用不同的请求对客户进行参数化。用于“行为请求者”与“行为实现者”解耦,可实现二者之间的松耦合,以便适应变化。分离变化与不变的因素。一个对象调用另一个对象,一般情况下的调用过程是:创建目标对象实例;设置调用参数;调用目标对象的方法。需要使用一个专门的类对这种调用过程加以封装时,我们把这种专门的类称作c原创 2016-10-04 00:02:43 · 483 阅读 · 0 评论