依赖倒置原则(DSP) run();}}class Client{public static function doing(){$driver = new Driver();$driver -> drive( new Benz() );}}Client :: doing();// 那么如果司机想开宝马呢?,是不是就要修改Driver了,这就违反了开闭原则了,怎么能只在Client添加代码就让宝马车也会开呢?interface ICar{//定义一个汽车接口public function run();}class BMW implements ICar{public function run(){return "BMW is runing !!!";}}class Benz implements ICar{public function run(){return "Benz is runing !!!";}}interface IDriver{//定义一个司机接口,以防以后有A照,B照,C照的public function drive(ICar $car);}class Driver implements IDriver{public function drive(ICar $car){echo "
" . $car -> run();}}class Client{public static function doing(){$driver = new Driver();$driver -> drive( new BMW() ); //开宝马$driver -> drive( new Benz() ); //开奔驰 . . . .}}Client :: doing();?>
这么简单,学会了吧?依赖倒置原则核心一句话:面向接口编程。
本文原创发布php中文网,转载请注明出处,感谢您的尊重!