[英]Encapsulation issues
我有一個小問題。
我有3節課:
Class Animal {
public $dog;
function __construct() {
$this->dog = new Dog();
}
}
Class Dog {
public $scream;
function __construct() {
$this->scream = new Scream();
}
}
Class Scream {
public $scream;
function __construct() {
}
public haaa(){
return 'hello World';
}
}
我正在嘗試獲取haaa()
函數。
$animal = new Animal();
$animal->haaa();
如果函數haaa()
進入Dog
類。.它將正常工作。.深度封裝是否有局限性?
謝謝!
根據您的示例,它將是:
$animal->dog->haaa();
但是,最好更改設計以使Dog extends Animal
:
class Dog extends Animal {
public function scream(){
// do stuff
}
}
$dog = new Dog();
$dog->scream();
因為狗屬於動物“王國”,因此更具語義。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.