[英]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.