7 个月以来,我一直在开发一个用 PHP 和 MySQL 编写的 PBBG(游戏)。该项目即将完成,可能很快就会发布,但我担心一些问题。
这是我第一次编写真正的项目,也是我第一次使用 OOP。我的代码现在有大约 25k 行,这是我的问题:
我是否正确使用 OOP?我相信我过度调用类构造。我有大约 20 个不同的班级,有时他们需要彼此。这是我如何使用 OOP 的示例代码:(只是一个草图,可能不起作用)
class A {
public $b;
public $c;
public function __construct(){
$b = new B();
$c = new C();
}
public function sampleA(){
//some stuff that depends $c->sampleC
}
}
class B {
public $c;
public function __construct(){
$c = new C();
}
public function sampleB($id){
return $this->c->sampleC($id);
}
}
class C {
public function sampleC(){
}
}
然后我会使用:
$a = new A();
$b = new B();
$c = new C();
$whatIWant = $a->sampleA($b->sampleB($c->sampleC()));
虽然我可以
$a = new A();
$whatIWant = $a->sampleA($a->b->sampleB($a->c->sampleC()));
在这个简单的示例中,这看起来没有必要,但我的脚本中有 200 多个不同的构造函数调用,我想这会减慢并超载我的服务器。
也许我的例子不是很清楚,所以我打印了我的 xdebug 分析器结果:
我需要单身吗?我尝试在单例中使用这样的简单示例,但我得到了相同的结果(每个类超过 1 个构造)。
也许我需要扩展这些类并使用父类的构造函数?但是 20 个不同的类,有时是独立的,有时是相互依赖的,这怎么可能呢?
或者也许我以正确的方式使用它(我不这么认为)