导读:隔离的接口是在PHP中没有任何新的 。简单地说,一个独立的界面是一个普通的接口,其合同提供与功能的实施者,执行一个或多个特定的任务。...
隔离的接口是在PHP中没有任何新的 。简单地说,一个独立的界面是一个普通的接口,其合同提供与功能的实施者,执行一个或多个特定的任务。 在这一个系列的第二部分,我们将使用它们创建一个登记制度 。
分隔在更多的颗粒状合同单片接口,使我们能够建立更有效地类,坚持“关注点分离”的范式,此外更容易开发,可以很容易地扩展应用组成,而不是继承。
为了演示如何利用隔离接口,在本系列的介绍文章中,我开发了一个典型的数组集合类,利用三个隔离接口(即本机的可数,迭代和ArrayAccess)为了落实结构能够遍历数组,以及计算和操纵它们的元素。 隔离的接口,可以使用在许多场合和情况下,除了上面提到的一个。 .在本系列的第二教程,我要告诉你如何利用一双定制的隔离接口中的一个灵活的注册表系统建设。 一起利用这些接口的“即插即用”的格局,注册表将存储/读取/删除,通过普通数组的元素,并通过以及PHP会话能力。
迈出第一步:创建一个隔离接口的情侣
我要开发一个简单但功能动态的注册表,非常相似,我在这里创建一个(http://www.yc-edu.org/c/a/PHP/Building-a-service-Locator-in - PHP /)。不过,在介绍中指出,将有一个微妙的差异,作为客户端代码耗时的注册表将能够基于阵列的注册表和使用PHP会话之间交换。
(RegistrableInterface.php)
<?php
interface RegistrableInterface
{
public function set($key, $value);
public function get($key);
public function clear();
}
如果我不得不说,对上述“RegistrableInterface”接口的东西,这将是它定义的,该合同是一个非常收窄。 毕竟,只有声明了三个方法,在具体实施时,将让我们保存,检索和清除数据存储/登记制度。但是,为什么要获得更丰厚的,如果这仅仅是它的实现需要的功能? 现在,因为我想不同的注册表类来存储数据转储,我要定义一个单独的合同执行此任务这份合同,而不是令人惊讶的是建立了所谓的“DumpableInterface”(对不起的名称,认真)另一个隔离接口。 :那就是:
(DumpableInterface.php)
<?php
interface DumpableInterface
{
public function dump();
}
由于其简单,我认为这个新的接口,不承担任何进一步的分析。值得一提的,然而,在这一点上,我设法创建一个灵活的API,由于存在几个隔离接口。
因此,正确定义以前的合同,接下来的事情是必须做的是定义类实现相关的接口,这将使用不同的后端处理数据。