加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

编程到接口而不是php中的实现

发布时间:2020-12-13 17:57:08 所属栏目:PHP教程 来源:网络整理
导读:其中一个主要的设计原则是接口的程序而不是实现.这甚至可能在 PHP或任何其他弱类型语言. 编辑: 我也许没有像我应该的那样清楚地写出这个问题.我不是说php不能使用接口 – 它显然可以.我的意思是设计原则“接口而不是实现的程序”在弱类型语言中变得多余. 是
其中一个主要的设计原则是接口的程序而不是实现.这甚至可能在 PHP或任何其他弱类型语言.

编辑:

我也许没有像我应该的那样清楚地写出这个问题.我不是说php不能使用接口 – 它显然可以.我的意思是设计原则“接口而不是实现的程序”在弱类型语言中变得多余.

是.定义界面:
interface iTemplate
{
    public function setVariable($name,$var);
    public function getHtml($template);
}

并实施它:

// Implement the interface
class Template implements iTemplate
{
    private $vars = array();

    public function setVariable($name,$var)
    {
        $this->vars[$name] = $var;
    }

    public function getHtml($template)
    {
        foreach($this->vars as $name => $value) {
            $template = str_replace('{' . $name . '}',$value,$template);
        }

        return $template;
    }
}

接口上的PHP手册:http://php.net/manual/en/language.oop5.interfaces.php

我不知道为什么不能仅仅因为语言类型弱而不能使用接口.

编辑:拥有一个接口的点(或多或少)是这样你可以重用你的代码,而不管实际实现所述接口的类.

假设您的程序使用接口Set,其中包含方法addItem(),removeItem()和contains().使用接口,您知道无论基础Set实现如何,您都可以调用这3种方法中的任何一种,无论是HashSet,TreeSet还是其他.

如果您使用的是弱类型语言,则不会改变;你仍然可以像使用强类型语言一样进行编码.我知道我没有很好地说出这个解释,但我希望你能得到这个想法.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读