
java-designPattern
文章平均质量分 82
freedom1993
Code is a part of my life.
展开
-
java23种设计模式之简介
设计模式(Design Patterns) 设计模式(Design pattern)是一套被反复使用、多数人知晓的、经过分类编目的、代码设计经验的总结。使用设计模式是为了可重用代码、让代码更容易被他人理解、保证代码可靠性。 毫无疑问,设计模式于己于他人于系统都是多赢的,设计模式使代码编制真正工程化,设计模式是软件工程的基原创 2014-11-25 13:59:46 · 439 阅读 · 0 评论 -
java 23种常用设计模式之外观模式(Facade)
在软件开发系统中,client程序经常要与复杂系统的内部子系统之间产生耦合,而导致client程序随着子系统的变化而变化。那么问题来了!如何简化client程序与子系统之间的交互接口?如何将复杂系统的内部子系统与客户程序之间的依赖解耦? 外观模式为子系统中的一组接口提供一个统一的高层接口,解决类与类之间的依赖关系。这一接口使得子系统更加容易使用,像spring一样,可以将类原创 2015-01-05 13:48:03 · 547 阅读 · 0 评论 -
java23种常用设计模式之模板方法模式(Template Method)
剖析过工厂方法、抽象工厂和建造者模式之后,想必都很不屑模板方法模式,So easy,Leader再也不用担心我会出烂代码了!原谅我例穷(配合词穷理解一下),今天的模板方法模式我们继续来createHuman吧!昨天吃完饭的时候突然觉得,我这几天都在扯什么白人黑人,会说会笑的废话,能不能编故事变得有深度一点呢?对自己的想象力实在是……只能用“不怎么滴”形容吧!今天补充一下场景吧!原创 2014-12-25 11:08:59 · 362 阅读 · 0 评论 -
java23种常用设计模式之抽象工厂模式(Abstract Factory)
上一篇博客在工厂方法的介绍中我们已经总结过了它的缺点,工厂方法模式类的创建依赖工厂类,不易于扩展程序,从设计层面看,扩展程序需要修改工厂类的做法违背了闭包原则。这个问题要解决也很简单,那就是抽象工厂模式,创建多个工厂类,一旦需要增加新功能,直接增加新的工厂类就搞定了,不需要修改之前的代码。So easy,我们直接看代码吧!package com.freedom.factory;//方原创 2014-12-23 12:29:32 · 428 阅读 · 0 评论 -
java23种常用设计模式之建造者模式(Builder)
工厂类模式提供的是创建单个类的模式,而建造者模式则是将各种产品集中起来进行管理,用来创建复合对象,所谓复合对象就是指某个类具有不同的属性,其实建造者模式就是前面抽象工厂模式和最后的Test结合起来得到的。我们继续简单地看一下代码:还和前面一样,一个Sender接口,两个实现类MailSender和SmsSender。建造者类如下:package com.freedom.builder;原创 2014-12-24 10:32:10 · 400 阅读 · 0 评论 -
java23种常用设计模式之工厂方法模式(Factory Method)2
就举个比较容易理解的例子:人有白、黑、黄三种人,他们都会说会笑,无论什么肤色。类图我就省了,大家有兴趣可以画画。工厂方法模式:管你是白的、黑的还是黄的,反正都是人,会说会笑,所以先定义一个人类的接口(Human)package com.freedom.factory.abstractfactory;public interface Human { public void原创 2014-12-23 13:52:36 · 372 阅读 · 0 评论 -
java23种常用设计模式之工厂方法模式(Factory Method)
最近真是所有时间都奉献给工作了,包括下班后,连续加了两个星期的班,都没时间写博客……(借口!!!中午两个小时够写一篇啦!!!哈哈,我错了,是懒……)23个设计模式才写了3个,我只想说一声,“”革命尚未成功,同志仍需努力呀!"好了,胡扯到此结束,回到正题。今天我们来捋一捋工厂方法模式。这个模式很容易理解,如其名,无非就是为了偷懒,对某种事物进行工厂式的批量生产。工厂方法有三种模式:普原创 2014-12-23 11:10:21 · 539 阅读 · 0 评论 -
java23种常用设计模式之单例模式(Singleton)
Singleton很有意思,也很容易理解,使用非常广泛。在Java应用中,单例对象能保证在一个JVM中,该对象只有一个实例存在。这样有几个好处:1、某些类创建比较频繁,对于一些大型的对象,这可以节省一笔很大的系统开销。2、省去了new操作符,降低了系统内存的使用频率,减轻GC压力。3、有些像交易所的核心交易引擎,控制着交易流程,如果该类可以创建多个的话,系统完全乱了,只有使用单例模原创 2014-11-25 17:07:51 · 458 阅读 · 0 评论 -
java23种常用设计模式之建造者模式(Builder)升级版实例
有句俗话叫懒人屎尿多!我也不知道我这是怎么回事,懒得要死,还写这么多,这例子那例子的,挺啰嗦的!昨天的工厂方法和抽象工厂模式写了N多,今天真不想写,可是总觉得,不写的话我哪有机会吹水,还是写吧!(真是个坏人,不考虑看的人感受,拜托不要总是成全自己恶心别人好不!!!)说起这个建造者模式,我们还是继续昨天createHuman的故事继续编吧!昨天说到create了各种人,有白的、黑的,黄的原创 2014-12-24 10:42:15 · 487 阅读 · 0 评论 -
java 23种常用设计模式之解析器模式(Interpreter)
解释器的的适用范围比较小,一般主要用在各种OPP开发的解释器中,比如正则表达式的解释器,或者一个数学表达式的解释器。下面我们就以解释数学表达式为例子,讲讲什么是解释器模式。源码:package com.freedom.interpreter;public class Context { private int a; private int b; public Co原创 2015-01-10 14:49:23 · 883 阅读 · 0 评论 -
java 23种常用设计模式之策略模式(Strategy)
才发现昨天桥接模式上传的代码没通过审核,有点搞不清楚是怎么回事,也懒得问了!代码基本都贴在文章里了,虽然看似有点黑了XX,真的只是个无聊的玩笑而已!我还是别费脑想故事了,还是规规矩矩的陈述别人的例子吧!虽然没什么人看到这些吐槽式的例子,但是还是为自己的形象着想吧!我不是什么女生,但也不是什么屌丝,我只是喜欢写代码,偶尔吐吐槽而已……没关系的,我写给自己看的而已,大不了代码不传了,反正基本全部都原创 2015-01-06 14:23:57 · 473 阅读 · 0 评论 -
java 23种常用设计模式之享元模式(FlyWeight)
在说明享元模式的定义之前我们先来看个图,意会一下。我相信与很多人一眼就能看懂,享元模式的优点也一目了然。享元模式的官方定义是运用共享技术有效的支持大量细粒度的对象。其实就是使用共享物件,用来尽可能减少内存使用量以及分享资讯给尽可能多的相似物件;适合用于只是因重复而导致使用无法令人接受的大量内存的大量物件。通常物件中的部分状态是可以分享。常见做法是把它们放在外部数据结构,当需要使用时原创 2015-01-06 11:31:56 · 493 阅读 · 0 评论 -
java23种常用设计模式之适配器模式(Adapter)
适配器模式也是最常用的模式之一,也很简单。每个笔记本接电源的线上都有一个黑盒子,它就是适配器,无论你是吧电脑接在在220V的电源上还是110V的电源上,通过这个适配器把这些不同的电压转换成电脑需要的36V电压,保证笔记本在一个电压稳定的情况下正常运行。今天我要讲的这个适配器模式也是这个意思。一样的作用,两个不同的接口,有不同的实现,在某一天God说,你要把B接口转化为A接口,What shou原创 2014-11-26 15:14:42 · 956 阅读 · 0 评论 -
java23种常用设计模式之装饰模式(Decorator)
装饰模式在中国的工作生活中都有很多呈现场景,这个和中庸文化有关,说话做事都不能太直接,需要技巧。比如你想批评一个人,如果一上来就劈头盖脸直接说你这不好那不好,这是要出事的,特别是武汉人,绝对跟你急。你要先表扬一下,然后来再指出出哪里还不够好,最后还鼓励一下的话,绝对会对你鞠躬尽瘁的。又比如《谁能》上一般几个男生向女嘉宾表白时,女嘉宾总是很嘚瑟的,“首先你很好,……(此处略去,反正都是怎原创 2014-11-27 11:14:54 · 504 阅读 · 0 评论 -
java 23种常用设计模式之原型模式(Prototype)
心情不好不想说话,是天下人的共性吧?今天不想吹水,亲们直接看代码吧!我想说的都在代码里了!package com.freedom.prototype;/* * 原型模式的思想: * 用原型实例指定创建对象的种类,并通过复制、克隆这些原型创建新的对象。 * 在JDK中复制对象就是通过clone()实现的。 * 一个原型类,只需要实现Cloneable接口,覆写clone方法,此处c原创 2014-12-26 11:51:13 · 436 阅读 · 0 评论 -
java 23种常用设计模式之代理模式(Proxy)
病怏怏地睡不着,还是继续码字吧!代理模式,作用如其名,就是做代理的。就比如你开了一个格子铺,有好多格子,可以买不同的商品,客户要买什么不用直接找厂家,直接在你这就买得到,这个过程你就是这些商品的代理Proxy,代表厂家把商品卖给需要的顾客。这么一看,这不就是黄牛吗?是的,和黄牛差不多,但是绝对有他存在的必要。一个顾客一般不止需要一类商品,但是一个厂家一般都是产一类产品的,就比如生产文具的一般不原创 2014-12-30 13:07:11 · 522 阅读 · 0 评论 -
java 23种常用设计模式之桥接模式(Bridge)
王XX,万XX小王子,富二代,国民老公……大家都听说过我就不对他进行简介一番了!他老爸的将来都是他的,至于他清不清楚自己家到底有多少公司,涉及多少个行业,善良的王XX只要知道这些公司是不是赚钱,赚了多少。有人会用善良来形容商人的吗?这个貌似什么唯利是图之类的多一些……这次要讲的是桥接模式,和这些茶余饭后的闲聊有什么关系呢?桥接模式就是把事物和其具体实现分开,使他们可以各自独立的变化。桥接的原创 2015-01-05 14:31:28 · 500 阅读 · 0 评论 -
java 23种常用设计模式之组合模式(Composite)
组合模式,有时又叫部分-整体模式。在处理类似树形结构的问题时比较方便,就比如家里的家庭成员,老黑家的家谱如下:老黑有两个儿子,一个叫大黑,一个叫二黑,看代码:package com.freedom.composite;import java.util.Enumeration;import java.util.Vector;public class HeiErDai {原创 2015-01-05 16:34:47 · 442 阅读 · 0 评论