Jas*_*vis 10 php oop interface
在用PHP编写对象时,我总是很难理解Interfaces的真正价值(可能是我想象的其他语言)
根据我的理解,你使用一个Interface来强制或保证当一个类使用Interface该类时,该类将具有在Interface该类内部定义的方法.
因此,根据我对使用它们的小知识,这并不意味着Interface在定义超过1个需要这些方法的类时,您只会找到一个有益的东西吗?
更清楚的是,如果我有一个类做了一件事而没有其他类需要做那样的事情,那么Interface在那个类上使用它是没有意义的吗?
所以你不会Interface在每个课上使用一个对吗?
PS)如果你投票这个问题,exact duplicate那么你没有阅读问题,只有标题,因为我已经阅读了大部分类似的问题
Jon*_*Jon 12
据我所知,你使用一个接口来强制或保证当一个类使用一个接口时,该类将具有在该类内部接口中定义的方法.
这实际上只是交易的一半(技术部分).还有一个非常重要的架构半部分,当你使用界面时出现它,它是这样的:
function feed(IAnimal $interface) {
// ...
}
Run Code Online (Sandbox Code Playgroud)
(或者,记录为返回实现的实例的"工厂"函数IAnimal也将作为示例).
这里的想法是界面的消费者说:"我想让动物喂食.我不在乎它是飞行,走路还是爬行.我不在乎它是大还是小.我只关心它与所有其他动物共享一些特征" - 包含界面定义的特征.
换句话说,接口用于从具体实现(类)中抽象合同(接口).这使得具体类的实现者可以自由地修改,重命名,删除和添加实现,而不会破坏接口用户的代码,如果您直接在API中引用具体类,这是不可能的.
至于仅由一个类实现的接口:这个信息不足以决定.如果有可以振振有词在未来接口的多个实现,那么它肯定是毫无意义(例如:一个IHashFunction接口将使即使感觉Sha1HashFunction是目前唯一可用的实现).否则它不提供任何东西.
| 归档时间: |
|
| 查看次数: |
3926 次 |
| 最近记录: |