什么是策略模式?
策略模式定义了算法家族,分别封装起来,让它们之间能够相互替换,此模式让算法的变化不会影响到使用算法的客户。
策略模式是一种定义一系列算法的方法,从概念上看全部这些算法完毕的都是同样的工作,仅仅是实现不同,它可以以同样的方式调用全部的算法,降低了各种算法类与使用算法之间的耦合。策.....
分类:
其他好文 时间:
2014-06-06 18:41:54
阅读次数:
212
前面的博文中分别介绍了Java设计模式中的创建型模式和结构型模式。从本文开始,将分别介绍设计模式中的第三大类,行为型模式。首先我们了解下分为此三大类的依据。创建型模式:主要侧重于对象的创建过程;结构型模式:主要侧重于处理类或对象的组合;行为型模式:主要侧重于类或对象之间的交互以及职责分配。首先了解下...
分类:
其他好文 时间:
2014-06-05 14:18:49
阅读次数:
221
问题的引出:
实例:从简单的模拟鸭子的应用说起,让我们来抽象一个鸭子超类。并让各种鸭子继承此超类。
具体如下图:
显然这还看不出问题,但如果现在需求改变了(程序员最讨厌就是这个了),好,现在老大说要让所有的鸭子都能飞。恩,机智的你在超类上面加上这个方法就搞定了,但现在问题来了,如果我们有一只橡胶鸭继承了这个超类,它也能飞!!这显然不科学啊。而且它也不是呱呱叫的,是吱吱叫的...
分类:
其他好文 时间:
2014-06-05 07:54:11
阅读次数:
320
组合 、委托
基本常识:策略模式和状态模式是双胞胎,在出生时才分开。
一般来说,我们把策略模式想成是除了继承之外的一种弹性替代方案。
什么时候用接口? or 抽象类?
当实现接口的类中,重复代码太多时,可考虑继承 。
OO模式:
状态模式--允许对象在内部状态改变时改变它的作为,对象看起来好像修改了它的类
如: 因为一个状态对应一个类, 每个类中的方法名相同,但实现不同...
分类:
其他好文 时间:
2014-06-05 03:52:54
阅读次数:
209
策略模式(Strategy Pattern)体现了两个非常基本的面向对象设计的原则
1、封装变化的概念;
2、编程中使用接口,而不是对接口的实现。
策略模式定义了一个共同的抽象算法接口,其子类实现这个接口定义的方法,并且都有各自不同的实现,这些算法实现可以在客户端调用它们的时候互不影响的变化。 子算法之间是弱连接的关系,提高了软件的可扩...
分类:
编程语言 时间:
2014-06-04 23:26:15
阅读次数:
429
七、Strategy(策略模式)描述:定义了一系列的算法,将每一种算法封装起来并可以相互替换使用,策略模式让算法独立于使用它的客户应用而独立变化。优点:各个部分之间是弱连接
的关系,弱连接的特性使软件具有更强的可扩展性 ,易于维护 ;更重要的是,它大大提高了软件可重用性 。例子:举例(TreeSet...
分类:
其他好文 时间:
2014-06-02 02:09:10
阅读次数:
266
设计模式有很多种,其中功能相似的很多,但是为什么还要分这么多种名字,查阅资料,我觉得下面的解释最为合理:用途不一样,名字就有区别,一把斧头用来砍人就叫凶器,用来砍柴就叫伐木斧,用来劈门就叫消防斧,这些模式的名字都是根据具体使用时的场景,联系了现实里某样东西或某种习惯而取得,所以很相似的模式行为有不同叫法。
今天我们就来研究一些工厂模式与策略模式的一些区别:
工厂模式是创建型模式,适应对象的变化...
分类:
其他好文 时间:
2014-06-01 14:03:19
阅读次数:
276
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