zoukankan      html  css  js  c++  java
  • 中介者模式

    中介者模式:用一个中介对象来封装一系列的对象交互。中介者使各对象不需要显示地相互引用,从而使其耦合松散,而且可以独立地改变它们之间的交互。

    abstract  class Country
    {

    protected $mediator;

    public function __construct(UnitedNations $mediator)
    {

    $this->mediator = $mediator;

    }

    }


    class USA extends  Country
    {

    public function __construct(UnitedNations $mediator)
    {
    parent::__construct($mediator);
    }


    public function Declaration($message){

    $this->mediator->Declaration($message,$this);
    }

    public function getMessage($message){

    echo "美国获得对方信息:".$message."<br>";

    }

    }

    class Iraq extends Country
    {
    public function __construct(UnitedNations $mediator)
    {
    parent::__construct($mediator);
    }

    public function Declaration($message){

    $this->mediator->Declaration($message,$this);
    }

    public function getMessage($message){

    echo "伊拉克获得对方信息".$message."<br>";
    }

    }

    abstract  class UnitedNations
    {


    public abstract function Declaration($message,Country $country);

    }
    
    
    class UnitedNationsSecurityCouncil extends  UnitedNations
    {


    public $usa;
    public $iraq;

    public function Declaration($message,Country $country)
    {

    if($country == $this->usa){
    $this->usa->getMessage($message);
    }else{
    $this->iraq->getMessage($message);
    }




    }

    }

    $unit = new UnitedNationsSecurityCouncil();

    $c1 = new USA($unit);

    $c2 = new Iraq($unit);

    $unit->usa = $c1;
    $unit->iraq = $c2;

    $c1->Declaration("山姆大叔:伊拉克你有杀伤武器");

    $c2->Declaration("萨达姆:我们没有杀伤武器");
  • 相关阅读:
    学习进度十二
    学习情况记录 11
    2020寒假 13
    学习情况记录 10
    学习情况记录 09
    2020寒假 12
    学习情况记录 08
    2020寒假 11
    学习情况记录 07
    2020寒假 10
  • 原文地址:https://www.cnblogs.com/paulversion/p/8483600.html
Copyright © 2011-2022 走看看