摘要: 模板方法模式:在一个方法中定义一个算法的骨架,而将一些步骤延迟到子类中实现。模板方法使得子类可以在不改变算法结构的情况下,重新定义算法中的某些步骤。 这个模式是用来创建一个算法的模板。模板就是一个方法,这个方法将算法定义成一组步骤,其中的任何步骤都可以是抽象的,由子类负责实现。这可以保持算法的... 阅读全文
posted @ 2014-03-07 12:44 花爱春 阅读(221) 评论(0) 推荐(0) 编辑
摘要: 该原则也叫作迪米特法则,还是这个名字高大上。。。 通俗的来讲,就是一个类对自己依赖的类知道的越少越好。也就是说,对于被依赖的类来说,无论逻辑多么复杂,都尽量地的将逻辑封装在类的内部,对外除了提供的public方法,不对外泄漏任何信息。该原则还有一个更简单的定义:只与直接的朋友通信。首先来解释一... 阅读全文
posted @ 2014-03-06 12:50 花爱春 阅读(1478) 评论(0) 推荐(0) 编辑
摘要: 适配器模式:将一个类的接口转换成客户期望的另一个接口。 客户使用适配器的过程: a. 客户通过目标接口(Duck)调用适配器(TurkeyAdapter)的方法,对适配器发出请求。 b. 适配器(TurkeyAdapter)使用被适配者接口(Turkey)把请求(quack())转换成被支... 阅读全文
posted @ 2014-03-03 12:37 花爱春 阅读(138) 评论(0) 推荐(0) 编辑
摘要: 命令模式:将“请求”封装成对象,以便使用不同的请求,队列或日志来参数化其他对象。命令模式也支持撤销的操作。 通过封装方法调用,我们可以把运算块包装成形。所以调用此运算的对象不需要关心事情是如何进行的,只需要知道如何使用包装成形的方法来完成它就可以了。 一个命令对象(如下文的LightOnCo... 阅读全文
posted @ 2014-02-24 12:48 花爱春 阅读(193) 评论(0) 推荐(0) 编辑
摘要: 实例化这个活动不应该总是公开地进行,初始化经常造成“耦合问题”。使用new时,即实例化一个具体类,而代码绑着具体类则会导致代码更脆弱,缺乏弹性。除了使用 new 操作符以外,还有很多创建对象的方法。 针对接口编程,可以隔离掉以后系统中可能发生的一大堆改变,因为通过多态,它可以与任何新类实现该接... 阅读全文
posted @ 2014-02-18 12:49 花爱春 阅读(251) 评论(0) 推荐(0) 编辑
摘要: 单件模式确保一个类只有一个实例,并提供一个全局访问点。 作用:有一些常用来管理资源的对象(如线程池,数据库连接。。。)我们只需要一个,而事实上,这类对象这只能有一个,如果制造出多个实例,就会导致许多问题,比如,程序的行为异常,资源使用过量,或者是不一致的结果。 关键点:私有构造器,静态变量,... 阅读全文
posted @ 2013-12-08 21:43 花爱春 阅读(239) 评论(0) 推荐(0) 编辑
摘要: 装饰者模式:动态地将责任附加到对象上,若要扩展,装饰者提供了比继承更有弹性的替代方案(貌似等于没说。。。定义一般都挺费解的)。 先说说一个重要的OO设计原则——开放-封闭原则:类应该对扩展开放,对修改关闭。该原则的设计目标:允许类容易扩展,在不修改现有代码的情况下,就可以搭配新的行为。这样的设... 阅读全文
posted @ 2013-12-08 14:05 花爱春 阅读(171) 评论(0) 推荐(0) 编辑
摘要: 观察者模式 其实就相当于 出版者+订阅者 的关系,当有新闻时,订阅者就会得到来自出版者那边的报纸;当然,若不想订阅报纸,取消订阅即可,之后出版者也就不会再发报纸给你;反之,若想订阅报纸,注册为订阅者即可。 观察者模式的定义:观察者模式定义了对象之间的一对多依赖关系【主题(出版者)与观察者(订阅... 阅读全文
posted @ 2013-12-07 12:54 花爱春 阅读(397) 评论(0) 推荐(0) 编辑
摘要: 多用组合,少用继承 阅读全文
posted @ 2013-12-03 22:33 花爱春 阅读(863) 评论(0) 推荐(0) 编辑
摘要: 这个OO设计原则,策略模式中也有运用,先参照代码和代码注释简单了解一下:public abstract class Cat{ IEatBehavior pEatBehavior; // 用接口定义一个变量(针对接口编程) public void Eat() { ... 阅读全文
posted @ 2013-11-27 12:46 花爱春 阅读(3005) 评论(0) 推荐(0) 编辑