设计模式
zhuanglonghai
这个作者很懒,什么都没留下…
展开
-
还用if--else?
今天是11月4日是2006下半年全国计算机技术与软件专业技术资格(水平)考试简称软考我是考软件设计师的,考的情况就不说了---这个跟下文无关在下午题的最后一题给我很大的启发,看下文应该能知道答案了---我觉的出这到题的作者肯定是面向对象设计的高手.---题目我有点忘了但是我就是凭记忆想想--如果没有猜错的话状态图题目大概意思:因为差差原因要设计一个Door有click,complete,tim原创 2006-11-04 23:22:00 · 808 阅读 · 0 评论 -
设计模式--builder--创建型
Builder模式的缘起• 假设创建游戏中的一个房屋House设施,该房屋的构建由几个部分组成,且各个部分要富于变化。• 如果使用最直观的设计方法,每一个房屋部分的变化,都将导致房屋构建的重新修正……构件房屋的序列不变动机(Motivation)在软件系统中,有时候面临着“一个复杂对象”的创建工作,其通常由各个部分的子对象用一定的算法构成;由于需求的变化,这个复杂对象的各个部分经常面临着剧烈的原创 2006-12-09 23:25:00 · 1014 阅读 · 0 评论 -
设计模式---abstract Factory --创建型
面向对象解决的是封装变法点new的问题常规的对象创建方法:// 创建一个Road 对象Road road=new Road();new的问题:– 实现依赖,不能应对“具体实例化类型”的变化。解决思路:– 封装变化点—— 哪里变化,封装哪里– 潜台词:如果没有变化,当然不需要额外的封装!工厂模式的缘起? 变化点在“对象创建”,因此就封装“对象创建”? 面向接口编程——依赖接口,而非依赖实现? 最原创 2006-12-09 20:40:00 · 931 阅读 · 0 评论 -
设计模式--Template Method --行为
无处不在的Template Method如果你只想掌握一种设计模式,那么它就是Template Method!意图(Intent)定义一个操作中的算法的骨架,而将一些步骤延迟到子类中。Template Method使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤。——《设计模式》GoF结构(Structure) 变与不变变化——是软件设计的永恒主题,如何管理变化带来的原创 2006-11-27 22:51:00 · 1510 阅读 · 0 评论 -
设计模式--Command--行为型
耦合与变化耦合是软件不能抵御变化灾难的根本性原因。不仅实体对象与实体对象之间存在耦合关系,实体对象与行为操作之间也存在耦合关系。 动机(Motivation)在软件构建过程中,“行为请求者”与“行为实现者”通常呈现一种“紧耦合”。但在某些场合——比如需要对行为进行“记录、撤销/重做(undo/redo)、事务”等处理,这种无法抵御变化的紧耦合是不合适的。在这种情况下,如何将“行为请求者原创 2006-11-28 20:54:00 · 1008 阅读 · 0 评论 -
设计模式--proxy--结构
意图(Intent)为其他对象提供一种代理以控制对这个对象的访问。——《设计模式》GoF 结构(structure)直接与间接 人们对于复杂的软件系统常常有一种处理手法,即增加一层间接层,从而对系统获得一种更为灵活、满足特定需求的解决方案。上帝创造人类本来很直接,人们很聪明改变这种关系例如一个婴儿要吃苹果原创 2006-11-26 11:31:00 · 995 阅读 · 0 评论 -
设计模式--FlyWeight--结构型
程序员是沟通人和机器交流意图(Intent)运用共享技术有效地支持大量细粒度的对象。——《设计模式》GoF结构(structure)面向对象的代价面向对象很好地解决了系统抽象性的问题,同时在大多数情况下,也不会损及系统的性能。但是,在某些特殊的应用中下,由于对象的数量太大,采用面向对象会给系统带来难以承受的内存开销。比如图形应用中的图元等对象、字处理应用中的字符对象等。原创 2006-11-24 14:08:00 · 998 阅读 · 0 评论 -
设计模式--facade-结构型
如果需求不会变话那么设计模式将会不存在上帝给了人类的一个时间这个概念,让一切都变的。人 :出生,儿童,少年,青年,中年,老年,死亡。接口:接口跟外部交互尽量依赖高层抽象,不要依赖实现细节高层是相对稳定,底层是易碎意图(Intent)为子系统中的一组接口提供一个一致的界面,Façade模式定义了一个高层接口,这个接口使得这一子系统更加容易使用。——《设计模式》GoF 结构(str原创 2006-11-23 22:50:00 · 917 阅读 · 0 评论 -
设计模式--Decorator---结构型
意图(Intent)动态地给一个对象增加一些额外的职责。就增加功能而言,Decorator模式比生成子类更为灵活。 ——《设计模式》GoF结构图(stucture)前面我们用bridgh 模式在不同纬度进行扩展 子类复子类,子类何其多假如我们需要为游戏中开发一种坦克,除了各种不同型号的坦克外,我们还希望在不同场合中为其增加以下一种或多种功能:比如红外线夜视功能,比如水陆两原创 2006-11-22 12:05:00 · 906 阅读 · 0 评论 -
设计模式--composite--结构型
在面向对象系统中,我们常会遇到一类具有“容器”特征的对象--即它们在充当对象的同时,又是其他对象的容器。 public class SingleBox:IBox...{ public class process()...{ .....}}public class ContainerBox:IBox...{public void process()...{ ... }public Arra原创 2006-11-21 21:10:00 · 871 阅读 · 0 评论 -
设计模式--bridge--结构型
设计模式的中指就是-- 优先考虑组合,再继承;继承--父类和子类耦合太紧了。桥将一个事物中的多个纬度的变法分离。让他自己变化。这个就是他的中指。bridge 模式 意图(intent)将抽象的部分与实现部分分离,使它们都可以独立的变化。示意图:举例来说假如我们需要开发一个同时支持PC和手机的坦克游戏,游戏在PC和手机上功能都一样,都有同样的类型,面临同样的功能需求变化,比如坦克原创 2006-11-21 14:12:00 · 996 阅读 · 0 评论 -
设计模式就是来解决应变---原型(prototype)
抽象a直接依赖于实现细节b抽象a直接依赖于抽象B,实现细节b依赖于抽象B。在软件系统中。经常面临着“某些结构复杂的对象”如何应对这种变化?如何向“客户程序(使用这些对象的程序)”隔离出“这些交易对象”。从而使得“依赖这些易变对象的客户程序”不随便需求改变而改变。假设我们现在有我们现在开发一个游戏系统里面有很都个角色都作自己的事情。于是我们就下出下面经过分析得到这几个角色是一些不断变法的原创 2006-11-14 13:28:00 · 928 阅读 · 0 评论 -
设计模式----Factory Method --创建型
从耦合关系谈起– 模块与模块之间的紧耦合使得软件面对变化时,相关的模块都要随之更改– 模块与模块之间的松耦合使得软件面对变化时,一些模块更容易被替换或者更改,但其他模块保持不变耦合关系直接决定着软件面对变化时的行为动机(Motivation)在软件系统中,经常面临着“某个对象”的创建工作;由于需求的变化,这个对象经常面临着剧烈的变化,但是它却拥有比较稳定的接口。如何应对这种变化?如何提供一原创 2006-12-10 17:11:00 · 947 阅读 · 0 评论