问题的引出:
实例:从简单的模拟鸭子的应用说起,让我们来抽象一个鸭子超类。并让各种鸭子继承此超类。
具体如下图:
显然这还看不出问题,但如果现在需求改变了(程序员最讨厌就是这个了),好,现在老大说要让所有的鸭子都能飞。恩,机智的你在超类上面加上这个方法就搞定了,但现在问题来了,如果我们有一只橡胶鸭继承了这个超类,它也能飞!!这显然不科学啊。而且它也不是呱呱叫的,是吱吱叫的...
分类:
其他好文 时间:
2014-06-05 07:54:11
阅读次数:
320
2.1、Data Recovery Strategy Determines Backup Strategy
当设计备份策略时,应该以数据恢复需求和数据恢复策略开始。每一种类型的数据恢复需要你采取适当的备份类型。失败会发生在用户错误,数据文件块损坏,介质失败。你可以重新开始数据库的正常操作的速度是哪种还原、恢复技术类型的运行过程。每种还原和恢复技术强加需要在备份策略上,包括数据库要使用的特性,存储...
分类:
其他好文 时间:
2014-06-05 06:48:38
阅读次数:
332
组合 、委托
基本常识:策略模式和状态模式是双胞胎,在出生时才分开。
一般来说,我们把策略模式想成是除了继承之外的一种弹性替代方案。
什么时候用接口? or 抽象类?
当实现接口的类中,重复代码太多时,可考虑继承 。
OO模式:
状态模式--允许对象在内部状态改变时改变它的作为,对象看起来好像修改了它的类
如: 因为一个状态对应一个类, 每个类中的方法名相同,但实现不同...
分类:
其他好文 时间:
2014-06-05 03:52:54
阅读次数:
209
策略模式(Strategy Pattern)体现了两个非常基本的面向对象设计的原则
1、封装变化的概念;
2、编程中使用接口,而不是对接口的实现。
策略模式定义了一个共同的抽象算法接口,其子类实现这个接口定义的方法,并且都有各自不同的实现,这些算法实现可以在客户端调用它们的时候互不影响的变化。 子算法之间是弱连接的关系,提高了软件的可扩...
分类:
编程语言 时间:
2014-06-04 23:26:15
阅读次数:
429
UML:CashSuper(父类) /// /// 2014-05-21 /// 超市商品收费 ///
public abstract class CashSuper { public abstract double AcceptCash(double...
分类:
其他好文 时间:
2014-05-26 21:25:47
阅读次数:
274
* 假设: * 你发现要为一家商店设计一个具有收银打折的软件 * 那么,如何设计才算是最好的呢? *
我们应该考虑到将来的功能的扩充,以及一些商品打折的比例 * * 现在先考虑一下 如何打折? * 比如: 商店的客户只有三种 :
普通用户,白金用户,钻石用户(今后也许还会有VVVIP) * 客户的身...
分类:
其他好文 时间:
2014-05-25 18:40:32
阅读次数:
224
策略模式(Strategy Pattern) 详解
本文地址: http://blog.csdn.net/caroline_wendy/article/details/26577879
本文版权所有, 禁止转载, 如有需要, 请站内联系.
策略模式: 定义了算法族, 分别封装起来, 让它们之间可以相互替换, 此模式让算法的变化独立于使用算法的客户.
对于父类的子类族需要经常扩展新的功能, 为了使用父类比较灵...
分类:
其他好文 时间:
2014-05-23 02:35:13
阅读次数:
341
策略模式定义:定义了算法族,分别封装起来,让它们之间可以互相替换,此模式让算法的变化独立于使用算法的客户。
简单定义:封装可以互换的行为,并使用委托来决定要使用哪一个。
OO原则:
封装变化
多用组合,少用继续。
针对接口编程,不针对实现编程。
以书中的Duck为例:
Duck.java(抽象类,performFly()与performQuack()函数的实现委托给行为类,行为由子类...
分类:
其他好文 时间:
2014-05-22 23:20:51
阅读次数:
346
委托模式是基本的设计模式之一。委托,即是让另一个对象帮你做事情。
许多其他的模式,如状态模式、策略模式、访问者模式本质上是在更特殊的场合采用了委托模式。
委托模式使得我们可以用聚合来替代继承。...
分类:
移动开发 时间:
2014-05-21 13:25:19
阅读次数:
273