在膳绫擎的代铝闼楝对于HttpRequester类中的fetch办法,如不雅我新增了一个新的xxxAdapter类并且要在fetch办法顶用到的话,就须要在HttpRequester类中去修改类(如加上一个elseif 断定),而经由过程下面的代码,就可很好的解决这个问题。下面代码很好的说清楚明了如安在不改变原有代码的情况下增长新功能。
Good:
- interface Adapter{
- public function request($url);
- }
- class AjaxAdapter implements Adapter{
- public function request($url)
- { // request and return promise
- }
- }
- class NodeAdapter implements Adapter{
- public function request($url)
- { // request and return promise
- }
- }
- class HttpRequester{
- private $adapter;
- public function __construct(Adapter $adapter)
- { $this->adapter = $adapter;
- }
- public function fetch($url)
- { return $this->adapter->request($url);
- }
- }
里氏调换原则 Liskov Substitution Principle (LSP)
- function
推荐阅读
沙龙晃荡 | 去哪儿、陌陌、ThoughtWorks在主动化运维中的实践!10.28不见不散! 比来在进行微办事架构的交换和>>>详细阅读
本文标题:PHP代码简洁之道——SOLID原则
地址:http://www.17bianji.com/lsqh/38154.html
1/2 1