概述
在编码中,有一个重要的事情是确保你的代码是可读的、可维护的、可扩展的、易于测试的。我们可以改善这些问题的方法之一就是使用接口(interface)。
什么是接口
基本上,接口描述了一个类「该做什么」。接口被用于确保实现接口的任何类中都包含接口规定的公共方法。
接口可以:
接口不可以:
- 单独实例化。
- 用于定义类中的私有(private)或保护(protected)方法。
- 用于定义类中的属性。
接口口用于定义一个类中应该包括的公共方法。需要记住的是,接口只定义了方法名和参数以及返回值,但不包含方法体。这是因为接口仅用于定义对象间的通信,而不是定义类之间通信的具体行为。为了给出一点上下文,这个实例展示了一个定义了几个公共方法的示例接口:
interface DownloadableReport
{
public function getName(): string;
public function getHeaders(): array;
public function getData(): array;
}
根据 php.net 介绍,接口有两个主要用途:
- 允许开发人员创建不同类的对象,这些对象可以互换使用,因为它们实现相同的接口。一个常见的例子是多个数据库访问服务,多个支付网关或不同的缓存策略。可以更换不同的实现,而无需对使用它们的代码进行任何更改。
- 允许函数或方法接受符合接口的参数并对其进行操作,而不关心对象还可以做什么或它是如何实现的。这些接口通常被命名为 Iterable,Cacheable,Renderable 等等来描述行为的含义。
|