设计模式
w329636271
这个作者很懒,什么都没留下…
展开
-
设计模式之简单的工厂模式
package com.zwy; /*简单的工厂内通过switch case 来生成对象,不在由用户去 new ,将new 操作封装在了,createOperator的内部*/ public class SimpleFactory { public static Operator createOperator(char operatorType){ Operator operator =原创 2015-09-15 22:05:50 · 383 阅读 · 0 评论 -
设计模式之桥接模式
package com.zwy; /*合成/聚合复用的原则(carp)尽量使用合成/聚合,今年不要使用类的继承. * 聚合表示一种弱的拥有关系,体现的是A对象可以包含B对象,但是B对象不是A对象的一部分,合成是一种强的 * 拥有关系,体现了严格的部分和整体的关系.部分和整体的生命周期一样. * 注意L优先使用对象的合成/聚合将有助于你保持每个类被封装,并被集中在单个任务三,这样...原创 2015-09-23 08:35:42 · 324 阅读 · 0 评论 -
设计模式之迭代器模式
主要就是实现开始,下一个,什么时候结束,当前哪一项. package com.zwy; import java.util.ArrayList; import java.util.Collection; import java.util.List; /*提供一种方法顺序访问一个聚合对象中各个元素,而又不暴露改对象的内部表示. * 注:当你要访问一个对象的聚集对象,而不管这些对象时什么原创 2015-09-22 22:33:30 · 350 阅读 · 0 评论 -
设计模式之命令模式
/*命令模式:将一个请求封装为一个对象,从而是你可用不同的请求对客户进行参数化,对请求对象排队或者记录请求日志, * 以及支持可撤销的操作. * 注: * 第一:他能容易的设计一个命令队列, * 第二:在需要的请鲁昂下,可以容易的将命令记录日志. * 第三:语序接受请求的一方决定是否否决请求. * 第四:可以容易的实现对请求的撤销和重做. * 第五由于新加进的类不影响其他的类,因为增原创 2015-09-23 13:14:12 · 389 阅读 · 0 评论 -
设计模式之状态模式
package com.zwy; public class StateTest { /*状态模式:当一个对象的内在状态改变时,允许改变其行为,这个对象看起来像是改变了其他类. * * 将与特定状态相关的行为局部化,并且将不同状态的行为分割开来. * * 注:个人觉得这个对一系列的对象形成链状,如果请求到达一个对象,如果这个请求属于当前 * 状态就进行处理,否则,就将请原创 2015-09-21 22:23:42 · 382 阅读 · 0 评论 -
设计模式之备忘录模式
1.个人理解:所谓的备忘录模式就是把一个状态下的数据存储下来,等到适当的时间点,可能是突然之间之后的数据处理都丢失了,这时候就可以把数据进行恢复.达到损失的最小. 2.书上备忘录的定义: 在不破坏封装性的前提下,捕获一个对象的内部状态,并在对象之外保存这个状态,这样之后就可以将这个对象恢复到原来的保存的状态. 3.备忘录模式适用于功能比较复杂的,当需要维护或记录属性历史的类,或者需要保存属性原创 2015-09-22 08:03:27 · 354 阅读 · 0 评论 -
设计模式之组合模式
package com.zwy; import java.util.ArrayList; import java.util.List; /*组合模式: * 组合模式就是:一颗树,树上有节点和叶子,节点下面可以拓展节点,但是叶子不能够在拓展 * * * 定义:组合模式:将对象组合成属性结构以表示:"部分整体"的层次结构,组合模式使得用户对单个对象和组合对象 * 的使用具有一致性。原创 2015-09-22 13:33:49 · 320 阅读 · 0 评论 -
设计模式之适配器模式
情景:在中国充电器是220v,但是到了外国是110v,这时候就需要转换器(适配器类),去把220v转化为110v..... package com.zwy; /* * 适配器模式:将一个类的接口转换成客户希望的另外的一个接口,Adapter模式使得原本由于接口不兼容而不能一起工作 * 的那些类可以一起工作. * * 系统的数据和行为都正确,当接口不符合是,我们应该考略用适配器,原创 2015-09-22 07:54:37 · 336 阅读 · 0 评论 -
设计模式之观察者模式
观察者模式:主要就是用一个对象的状态改变,然后通过方法去批量的更改一系列对象的状态./*观察者模式:定义了一种一堆多的依赖关系,让多个观察者同时监听某个主题对象, * 这个主题对象在状态发生变化是,会通知所有观察者对象,使他们能够自动更新自己. * * 注: * 将一个系统分割成一系列相互协作的类有一个很不好的副作用,那就是需要维护现相关对象的一致性, * 我们不希望为了维持一致性而使原创 2015-09-19 00:29:28 · 362 阅读 · 0 评论 -
设计模式之建造者模式
/*建造者模式:建一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示. * 如果,我们用了建造者模式,那么用户就只需要自定需要构建的类型就而已得到他们,而具体的构建的过程和细节就不需要知道. * * 建造者模式在但创建复杂的对象的算法应该应该独立于组成部分以及他们的装配方式时的使用模式. * */ package com.zwy; import java.util.原创 2015-09-18 23:49:21 · 360 阅读 · 0 评论 -
设计模式之外观模式
/*迪米特法则:如果两个类不必彼此直接同行,那么这两个内就不应当发生直接的相互作用,如果其中一个类需要调用另外一个类 * 的 某一个方法的话,可以通过第三者转发这个调用. * 根本思想:强调类之间的松耦合. * 程序设计中类之间的耦合越弱,越有利于复用,一个处在弱耦合的类被修改,不会队友关系的类造成波及,信息的隐藏 * 有利于类的复用. * */ /*Facade: 外观类,原创 2015-09-18 08:08:15 · 374 阅读 · 0 评论 -
设计模式之模板方法
/*模板方法模式:定义一个操作中的算法的骨架,而将一些步骤延迟到子类中,模板方法使得子类可以不改变一个算法的 * 结构即可重新定义该算法的某些特定步骤. * * 我的个人理解就是把一些共同的行为搬到父类,把一些可变的不一样的留到子类中去实现. * * 注:模板方法是通过巴布遍的行为搬移到超类,去除子类中的重复代码来体现他的优势. * 模板方法就是提供了一个很好的代码复用原创 2015-09-18 07:39:04 · 388 阅读 · 0 评论 -
设计模式之4 抽象工厂
package com.zwy.day2; /*比工厂类,多了一个就是工厂类多了一个父类*/ public class AbstractFactory { public static void main(String[] args) { Factory factory = new SubFactory(); Operator operator = factory.createOpe原创 2015-09-16 11:45:07 · 430 阅读 · 0 评论 -
设计模式之策略模式
主要用来在不同的算法之间的切换,而且不会影响客户端.使得修改的代码量最少.package com.zwy; /*策略模式,它定义了算法家族,分别封装起来,让他们之间可以互相替换,此模式让算法的变化不会影响到用算法的客户*/ public class Strategy { /** * main(这里用一句话描述这个方法的作用) * (这里描述这个方法适用条件 – 可选) * @par原创 2015-09-15 22:54:52 · 437 阅读 · 1 评论 -
设计模式之代理模式
代理模式:顾名思义,就是对一个对象的访问,通过这个代理来访问, package com.zwy; /*代理模式: * 为其他的对象提供一种代理以控制对这个对象的访问. * 第一:远程代理也就是为一个对象在不同的地址空间提供局部的代表,这样就可以隐藏一个对象不存在于不同地址空间的事实. * 第二:虚拟代理,是根据需要创建开销很大的对象,通过它来存放实例化需要很长时间的真实对象. *原创 2015-09-16 07:41:45 · 411 阅读 · 0 评论 -
设计模式之单例模式
java的单个例子有好多写法,我主要提供两种常用的. 如果需要更多的单例的写法可以参考http://www.blogjava.net/kenzhh/archive/2013/03/15/357824.html package com.zwy; import java.util.concurrent.locks.Lock; /*单例模式:保证一个类仅有一个实例,并提供一个访问它的全局访问点.原创 2015-09-22 22:59:12 · 292 阅读 · 0 评论