主要设计原则之一是针对接口编程而不是实现。这在 php 或任何其他弱类型语言中是否可能?
EDIT:
我可能没有把问题写得清楚。我并不是说 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 http://php.net/manual/en/language.oop5.interfaces.php
我不知道为什么仅仅因为语言是弱类型就不可能有接口。
EDIT:拥有接口的目的(或多或少)是这样你就可以重用你的代码,而不管实际实现所述接口的类是什么。
假设你的程序使用一个接口Set
,其中有方法addItem()
, removeItem()
and contains()
。通过接口,您知道您将能够调用这 3 种方法中的任何一种,而不管底层是什么Set
实现,无论是 HashSet、TreeSet 还是其他。
如果您使用弱类型语言,这一点不会改变;您仍然可以像使用强类型语言一样进行编码。我知道我的解释不太好,但我希望你能明白。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)