膳绫擎的代铝闼楝Robot类并不须要eat()这个办法,然则实现了Emplyee接口,于是只能实现所有的办法了,这使得Robot实现了它并不须要的办法。所以在这里应当对Emplyee接口进行拆分,精确的代码如下:
- interface Workable{
- public function work();
- }
- interface Feedable{
- public function eat();
- }
- interface Employee extends Feedable, Workable{
- }
- class Human implements Employee{
- public function work()
- { // ....working
- }
- public function eat()
- { //.... eating in lunch break
- }
- }// robot can only work
- class Robot implements Workable{
- public function work()
- { // ....working
- }
- }
依附反转原则 Dependency Inversion Principle (DIP)
这条原则解释两个根本的要点:
- 高阶的模块不该该依附低阶的模块,它们都应当依附于抽象
- 抽象不该该依附于实现,实现应当依附于抽象
这条起先看起来竽暌剐点晦涩难解,然则如不雅你应用过php框架(例如 Symfony),你应当见过依附注入(DI)对这个概念的实现。固然它们不是完全相通的概念,依附倒置原则使高阶模块与低阶模块的实现细节和创建分别。可以应用依附注入(DI)这种方法来实现它。更多的好处是它使模块之间解耦。耦合会导致你难于重构,它是一种异常糟糕的的开辟模式。
推荐阅读
沙龙晃荡 | 去哪儿、陌陌、ThoughtWorks在主动化运维中的实践!10.28不见不散! 比来在进行微办事架构的交换和>>>详细阅读
本文标题:PHP代码简洁之道——SOLID原则
地址:http://www.17bianji.com/lsqh/38154.html
1/2 1