美文网首页
PHP设计模式-访问者

PHP设计模式-访问者

作者: 木有sky | 来源:发表于2019-02-17 10:09 被阅读0次

适用性

说说我对的策略模式和访问者模式的区分:

乍一看,其实两者都挺像的,都是实体类依赖了外部实体的算法,但是:

对于策略模式:首先你是有一堆算法,然后在不同的逻辑中去使用

对于访问者模式:实体的【结构是稳定的】,但是结构中元素的算法却是多变的,比如就像人吃饭这个动作

是稳定不变的,但是具体吃的行为却又是多变的

代码示例

/**

* 动物接口

*/

interface AnimailInterface

{

    /**

    * 行为吃

    *

    * @param  VisitorInterface $visitor 访问者

    * @return void

    */

    public function eat(VisitorInterface $visitor);

}

/**

* 实体人

*

* 人吃饭的行为是不变的,但是吃什么是依照环境而定的

*/

class Person implements AnimailInterface

{

    /**

    * 行为吃

    * 具体吃什么依照访问者而定

    *

    * @param  VisitorInterface $visitor 访问者

    * @return void

    */

    public function eat(VisitorInterface $visitor)

    {

        $visitor->eat();

    }

}

/**

* 访问者接口

*/

interface VisitorInterface

{

    /**

    * 行为吃

    *

    * @return void

    */

    public function eat();

}

/**

* 访问者实体

*

* 亚洲

*/

class VisitorAsia implements VisitorInterface

{

    /**

    * 行为吃

    *

    * @return void

    */

    public function eat()

    {

        echo "身处亚洲,所以主要吃大米咯~ \n";

    }

}

/**

* 访问者实体

*

* 美洲

*/

class VisitorAmerica implements VisitorInterface

{

    /**

    * 行为吃

    *

    * @return void

    */

    public function eat()

    {

        echo "身处美洲,所以主要吃油炸食物咯~ \n";

    }

}

// 生产一个人的实例

$person = new Person();

// 来到了亚洲

$person->eat(new VisitorAsia());

// 来到了美洲

$person->eat(new VisitorAmerica());

相关文章

  • [Android]设计模式-访问者模式

    [Android]设计模式-访问者模式 访问者模式 Visitor 【备注】只用于个人收藏

  • 设计模式[23]-访问者模式-Visitor Pattern

    1.访问者模式简介 访问者模式(Visitor Pattern)模式是行为型(Behavioral)设计模式,提供...

  • PHP设计模式-访问者

    适用性 说说我对的策略模式和访问者模式的区分: 乍一看,其实两者都挺像的,都是实体类依赖了外部实体的算法,但是: ...

  • 设计模式之访问者(Visitor)

    访问者模式,是行为型设计模式之一。访问者模式是一种将数据操作与数据结构分离的设计模式,它可以算是 23 中设计模式...

  • PHP设计模式之访问者模式

    访问者模式解决的问题 在我们的代码编写过程当中,经常需要对一些类似的对象添加一些的代码,我们以一个计算机对象打印组...

  • 访问者模式一篇就够了

    访问者模式介绍 最复杂的设计模式,并且使用频率不高,《设计模式》的作者评价为:大多情况下,你不需要使用访问者模式,...

  • 访问者模式

    访问者模式属于行为型模式。访问者模式是一种将数据结构和数据操作分离的设计模式。访问者模式比较复杂,而且实际使用的地...

  • Android设计模式——访问者模式(十一大行为型)

    1.访问者模式介绍 访问者模式时十一大行为型设计模式之一。 访问者模式是一种将数据操作与数据结构分...

  • Java设计模式<访问者模式>

    Java设计模式<访问者模式> 意图 将对象的结构和操作分离 角色 抽象访问者:抽象类或者接口,声明访问者可以访问...

  • 25.访问者模式(行为型)

    访问者模式(行为型) 一、相关概述 访问者模式是一种较为复杂的行为型设计模式,它包含访问者和被访问元素两个主要组成...

网友评论

      本文标题:PHP设计模式-访问者

      本文链接:https://www.haomeiwen.com/subject/uezweqtx.html