设计模式
小木leo
努力学习中,coding不仅仅是coding
展开
-
java设计模式——装饰者模式浅析
帮同学做试卷发现有个编程题居然让用Decorator来写,以前只接触过简单的设计模式,现在有时间准备好好认真学习一下设计模式。如果你只会code那么你永远都只是code,如果你会设计模式和算法那么你绝不单单只能做code。 装饰设计模式简单的说来就是为了动态的增加已有类的功能。有些人也许会说增加已有类的功能那么继承该类重写或者添加方法不就行了吗?但是这样只会让程序更加的臃肿,如果要增加的功原创 2015-12-20 17:46:03 · 559 阅读 · 0 评论 -
观察者模式
观察者模式是非常实用的一种设计模式。他可以降低对象之间的耦合度,实现松耦合。比如我们编程中,如果你的一个对象获得了一个数据,他要将这个数据通知很多别的对象,让那些对象实现数据的更新。最简单的方法如下:T1 t1=new T1();T2 t2=new T2();T3 t3=new T3();t2.update(info);t1.update(info);t3.update(in原创 2016-07-22 17:00:30 · 279 阅读 · 0 评论 -
工厂模式
设计模式原则之中有一点是不应该针对实现编程,但是每次new的时候实际就是针对实现编程。针对实现编程会带来很多问题,会使代码更脆弱,缺乏弹性。如Person p;if(sex="男人") p=new Man();else p=new Woman();如果改天我们想再加一个小孩呢?这就需要对这段代码重新修改。这样的修改很容易犯错,造成系统的局部更新维护。好的代码都是对扩展开发对修原创 2016-07-27 09:46:00 · 258 阅读 · 0 评论 -
工厂方法模式
前一章写了工厂模式,该模式将创建与对象本身业务处理分离了,可以降低系统的耦合度,使得两者修改起来都相对容易些。当以后实现改变时,只需要修改工厂类即可。但是这种工厂模式,提供的创建都是单一的创建,比如pizza那个例子,如果每个pizza店想创建自己风格的pizza的话,那么工厂模式便无法提供这种改变。难道我们要创建不同风格的pizza工厂?这显然不对。这样会使类增多,系统更复杂。工厂方法模原创 2016-07-27 09:58:03 · 266 阅读 · 0 评论 -
单例模式
单例模式的引入。在我们的系统开发之中。我们会有一些对象其实是我们只需要一个。比如:线程池,注册表,缓存等。事实上这些对象只能有一个实例,如果制造出多个实例,就会导致诸多问题如程序行为异常、资源使用过量首先最简单的单例的实现,我们可以通过将构造器私有化来限制对象的创建,同时提供统一的访问点。下面是代码实现:public class Singleton { private Single原创 2016-07-28 08:22:23 · 218 阅读 · 0 评论 -
命令模式
在我们编程应用中或者生活之中。我们希望用一个统一的遥控器,这个遥控器可以对家电进行统一的off和on操作,但是这些遥控器却不需要知道这些家电自动化的细节。命令模式可以将“动作的请求者”从“动作的执行者”对象中解耦。请求者为遥控器,执行者为家电。做法是把请求封装成一个特定的对象(如电灯对象)。所以如果对每个按钮都存储一个命令对象,那么当按下按钮的时候,就可以请命令对象做相关的工作。遥控器并不原创 2016-07-29 10:57:56 · 323 阅读 · 0 评论 -
适配器和外观模式
适配器模式:将一个类的接口,转换成客户期望的另一个接口。适配器让原本接口不兼容的类可以合作无间适配器模式在我们显示生活中很常见。比如你在Hong Kong买了个Iphone6手机,你会发现它的标配送的充电器居然是三孔大的充电接口,但是内地没有这种借口的啊。这时候你就需要适配器将这种借口进行转换,转换为能接受的接口适配器可以将一个接口转换成另一个接口,以符合客户的期望适配器实原创 2016-07-30 10:51:46 · 340 阅读 · 0 评论