ABAP与设计模式系列之二

be864e46e6d18f486a63e539


首先介绍策略模式的基本内容

1. 意图:

定义一系列算法,把他们一个个的封装起来,并且使他们可以互相替换.本模式可以使得算法可以独立于使用他的客户而变化.

2. 结构:

3. 适用性:

1).许多相关的类仅仅是行为有异.

2).需要使用一个算法的不同变体.

3).一个类定义了多种行为,并且这些行为在这个类的操作中以多个条件语句的形式出现.

4. 参与者:

1).Strategy

定义所支持的算法的公共接口.context使用这个接口来调用某个concrete strategy所定义的算法.

2).ConcreteStrategy

以strategy接口实现具体的算法

3).context

用一个concretestrategy对象来配置

维护一个strategy对象的引用

可定义一个接口来让strategy访问它的数据

5. 效果

1).相关算法系列

2).一个替代继承的方法

3).消除一系列条件语句

Note:

对于效果,我想在以后的例子中就会有所体现,现在只是基本的定义以及结构,所以看上去有些晦涩难懂,不过不要着急,慢慢的就能理解了.

策略模式的例子:

UML图:

实现:

1. 定义flybehavior接口

2. 定义fly的行为算法

1. 定义quackbehavior接口

2. 定义quack的行为算法

3. 定义抽象类duck,包含两个接口的引用

1. 定义duck子类

绿头鸭子

橡皮鸭子

测试程序

测试结果:


About The Author

从事SAP行业有些年头,对SAP技术稍有了解; 如无特别声明,本博客文章为原创,转载请注明; 博主MSN:xuchunbo0901@hotmail.com; 博主邮箱:bob.xu@abaptech.com。

3 Comments

  1. Bob 说道:

    收到邮件后我会尽快回复,多多支持!

  2. Irene 说道:

    通过这篇我也有测试。但是期间遇到了一些问题,我有发邮件给你,不知道是否有收到呢?

  3. Irene 说道:

    通过这篇我也有测试。但是期间遇到了一些问题,
    我有发邮件给你,不知道是否有收到呢?

Leave A Reply


注意: 评论者允许使用'@user空格'的方式将自己的评论通知另外评论者。例如, ABC是本文的评论者之一,则使用'@ABC '(不包括单引号)将会自动将您的评论发送给ABC。使用'@all ',将会将评论发送给之前所有其它评论者。请务必注意user必须和评论者名相匹配(大小写一致)。

无觅相关文章插件,快速提升流量