继承与继承PHP 中的组合 ?
当我们进行面向对象编程时,了解继承和组合之间的区别很重要:
遗产
一个类继承另一个类,重用并扩展其行为。
class Motor { public function ligar() { return "Motor Ligado!"; } } class Carro extends Motor{} $carro = new Carro(); $carro->ligar();
作品
一个类包含其他类的实例来委派职责。通常首选组合来创建更灵活的系统并避免深层继承的问题。
实际示例
您是否曾停下来想一想,当我们启动汽车时,我们实际上是在启动发动机?按照这个推理,我们可以创建两个对象:一个称为 Engine,另一个称为 Car。这样,Car 对象将包含 Engine 对象的实例,它将负责启动汽车。
代码
class Motor { public function ligar() { return "Motor Ligado!"; } } class Carro { private Motor $motor; public function __construct(Motor $motor) { $this->motor = $motor; } public function ligar() { return $this->motor->ligar(); } }
理解
Car 类没有直接内置启动引擎的逻辑,而是将此责任委托给 Engine 对象。这使得 Car 类专注于它应该做的事情,使代码更加模块化并且更易于维护。将来,您可以在不修改Car类代码的情况下更改或改进引擎。
测试
$motorV4 = new Motor(); $carro = new Carro($motorV4); echo $carro->ligar(); // Saída: Motor Ligado!
优点
这种方法更加灵活,因为它允许汽车具有不同的发动机类型(例如,V4、V6 或电动发动机),而无需更改 Car 类别。这种模块化有利于系统维护和扩展。
免责声明: 提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发到邮箱:[email protected] 我们会第一时间内为您处理。
Copyright© 2022 湘ICP备2022001581号-3