2013年5月30日

设计模式 学习笔记(5)迪米特法则、外观模式、建造者模式

摘要: (11)迪米特法则 迪米特法则(LoD)也叫最少知识原则。如果两个类不必彼此直接通信,那么这两个类就不应当发生直接的相互作用。如果其中一个类需要调用另一个类的某一个方法的话,可以通过第三者转发这个调用。 迪米特法则首先强调的前提是在类的结构设计上,每一个类都应当尽量降低成员的访问权限,,也就说一个字段或行为若不需要别的类知道就不用公开,包装好自己的private状态。需要公开的话就用属性来实现。 迪米特法则其根本思想,是强调了类之间的松耦合。类之间的耦合越弱,越有利于复用,一个处在弱耦合的类被修改,不会对有关系的类造成波及。也就是说,信息的隐藏促进了软件的复用。(12)外观模式 外观模... 阅读全文

posted @ 2013-05-30 21:58 小邦happy 阅读(665) 评论(0) 推荐(0) 编辑

设计模式 学习笔记(4)工厂方法模式、原型模式、模板方法模式

摘要: (8)工厂方法模式(Factory Method),定义一个用于创建对象的接口,让子类决定实例化哪一个类。工厂方法使一个类的实例化延迟到其子类。 简单工厂模式与工厂方法模式的区别。简单工厂模式的最大优点在于工厂类中包含了必要的逻辑判断,根据客户端的选择条件动态实例化相关的类,对于客户端来说,去除了与具体产品的依赖。但是我们在增加一个功能时,需要给运算的工厂类方法里加“case”的分之条件,修改原有的类就违背了开发-封闭原则。这时就由工厂方法模式来解决,但工厂方法模式实现时,客户端需要决定实例化哪一个工厂来实现运算类,选择判断的问题还是存在,工厂方法把简单工厂的内部逻辑判断移到了客户端代码来进. 阅读全文

posted @ 2013-05-30 10:36 小邦happy 阅读(431) 评论(0) 推荐(0) 编辑

2013年5月29日

设计模式 学习笔记(3)装饰模式、代理模式

摘要: (6)装饰模式 装饰模式(Decorator),动态地给一个对象添加一些额外的职责,就增加功能来说,装饰模式比生成子类更为灵活。《设计模式:可复用面向对象软件的基础》英文版《GOF》。 Component是定义一个对象接口,可以给这些对象动态地添加职责。ConcreteComponent是定义了一个具体的对象,也可以给这个对象添加一些职责。Decorator,装饰抽象类,继承了Component,从外类来扩展Component类的功能,但对于Component来说,是无需知道Decorator的存在的。至于ConcreteDecorator就是具体的装饰对象,起到给Component添加职.. 阅读全文

posted @ 2013-05-29 19:40 小邦happy 阅读(884) 评论(0) 推荐(0) 编辑

设计模式 学习笔记(2)单一职责原则、开放封闭原则、依赖倒转原则

摘要: (3)单一职责原则 单一职责原则(SRP),就一个类而言,应该仅有一个引起它变化的原因。例如,我们在写一个窗体应用程序,一般都会生成一个Form这样的类,于是我们就把各种各样的代码,像算法、数据库访问SQL都写到这样的类中,这就意味着,无论何种需求要来,你都需要更改这个窗体类,维护麻烦,不能复用,缺乏灵活性。 如果一个类承担的职责过多,就等于把这些职责耦合在一起,一个职责的变化可能会削弱或者抑制这个类完成其它职责的能力。这种耦合会导致脆弱的设计,当变化发生时,设计会遭受到意想不到的破坏。 软件设计真正要做的内容就是发现职责并把那些职责相互分离。其实要去判断是否应该分离出类来,也不难,就是... 阅读全文

posted @ 2013-05-29 11:31 小邦happy 阅读(189) 评论(0) 推荐(0) 编辑

设计模式 学习笔记(1)简单工厂模式、策略模式

摘要: 1.简单工厂模式 用一个单独的类来做创造实例的过程。 public class OperationFactory{ public static Operation createOperate(string operate){ Operation oper=null; switch (operate){ case “+”: oper=new OperationAdd();break; case “-”: oper=new OperationSub();break; case "*": ... 阅读全文

posted @ 2013-05-29 11:30 小邦happy 阅读(147) 评论(0) 推荐(0) 编辑

导航