zoukankan      html  css  js  c++  java
  • ABAP与设计模式之策略模式

    引用:翱翔云天

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

    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子类

    绿头鸭子

    橡皮鸭子

    测试结果:

  • 相关阅读:
    解决ScrollView嵌到listView冲突问题
    Popupwindow 的简单实用,(显示在控件下方)
    BroadCast,BroadCastReceiver
    NSURLSession
    sirikit
    MJExtension使用
    iOS中的translucent和automaticallyAdjustsScrollViewInsets用法
    如何获取LanuchImage-1(详细)
    如何获取LanuchImage
    MJRefresh详解
  • 原文地址:https://www.cnblogs.com/wequst/p/1513441.html
Copyright © 2011-2022 走看看