// 如果开惯了奔驰的司机,让他开宝马?(咱不能因为换车咯,就把老司机也给开了,那至少不道德对不?)
// 如果修改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 "<br>" . $car -> run();
}
}
class Client{
public static function doing(){
$driver = new Driver();
$driver -> drive( new BMW() ); //开宝马
$driver -> drive( new Benz() ); //开奔驰
//
}
}
Client :: doing();
//我就不写“?>”闭合符号!
PHP衣食父母系列-依赖倒置
最新推荐文章于 2021-04-07 15:43:22 发布