zoukankan      html  css  js  c++  java
  • 策略模式

    这段时间研究provider模式,顺便研究了策略模式,发现策略模式也是个比较简单的模式。简单记一下。

    最简单的策略模式是涉及到四个类,调用者类,被调用者父类,两个或者两个以上继承于被调用者父类的子类。调用者类里面包含被调用者父类的引用,在构造函数里面加个被调用者类的参数。

    用代码来表示更明白:

    父类,定义抽象函数:

    public class Strategy

    {

    public abstract string write()

    {

    //return some string;

    }

    }

    ---------------------------

    多个子类,重载父类里面的抽象函数:

    public class StrategyA:Strategy

    {

    public override string write()

    {

    return "I am A";//具体实现1

    }

    }

    public class StrategyB:Strategy

    {

    public override string write()

    {

    return "I am B";//具体实现2

    }

    }

    ----------------------

    调用父类策略类

    public class Client

    {

    private Strategy _strategy;

    public void Client(Strategy mystrategy)

    {

    _strategy=mystrategy;

    }

    //调用策略类里面的方法

    public string DoSomething()

    {

    _strategy.write();

    }

    }

    -----------------------

    其他的类再来调用 client类,选择具体的策略

    public class anthor

    {

    public string doA()

    {

    client c=new client(StrategyA  a);

    return c.doSomething();//这里因为是调用StrategyA,返回的是 I am A;

    }

    }

    ===================================

    其他:

    组合,聚合,继承都可以实现代码复用。组合,聚合用多了更好用。

    重载以及多态带给了子类更多的灵活性。

  • 相关阅读:
    第二次个人作业
    软件工程第一次个人作业
    2020软件工程最后一次作业
    软件工程团队作业第一阶段
    软件工程第四次作业
    软件工程第一次结对作业
    软件工程第二次作业
    软件工程最后一次作业
    软件工程第四次作业
    2020软件工程第三次作业
  • 原文地址:https://www.cnblogs.com/asdio/p/1379341.html
Copyright © 2011-2022 走看看