委托模式

委托模式

  • 通过分配或委托至其他对象,委托设计模式能够去除核心对象的判决和复杂的功能性。
  • 为其他对象提供一种代理以控制这个对象的访问。
  • 代码
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    class Bank{
    protected $info;

    public function updateBrankInfo($type,$money){
    $this->info[$type]=$money;
    }

    public function brankWithdraw($branktype){
    $obj=new $branktype;
    return $obj->brankMain($this->info);
    }
    }

    /*
    委托接口
    */
    interface Delegate{
    public function brankMain($info);
    }

    /*
    存款操作类
    */
    class brankDeposit implements Delegate{

    public function brankMain($info){
    echo $info['deposit'];
    }
    }

    /*
    取款操作类
    */
    class brankWithdraw implements Delegate{
    public function brankMain($info){
    echo $info['withdraw'];
    }
    }


    $bank=new Bank();
    $bank->updateBrankInfo("deposit","4000");
    $bank->updateBrankInfo("withdraw","2000");
    $bank->brankWithdraw("brankDeposit");
    echo "<br>";
    $bank->brankWithdraw("brankWithdraw");