【发布时间】:2011-11-29 15:09:32
【问题描述】:
我正在查看Should I use multiple classes for game? - Robert Pitt 的回答。
interface Weapons {
public function Fire();
}
class Colt implements Weapons {
function Fire() {
echo 'Fire!';
}
}
abstract class Human implements Colt
{
}
class Sniper extends Human
{
public function __construct()
{
}
}
我可能在“人类”上实现“武器”而不是柯尔特,然后在“狙击手”上初始化右武器类?
class Sniper extends Human
{
public $weapon;
public function __construct($weapon)
{
$this->weapon = new $weapon;
}
$this->weapon->fire();
}
或者类似的东西?我对它的工作原理感到困惑..
EXAMPLE 1
class A {
public $class;
__construct() {
$this->class = new $class;
}
hello() {
$this->class->hello();
}
}
class B {
public function hello() {
echo 'hi';
}
}
【问题讨论】:
-
类 Human 应该
extend,而不是implement类 Colt。因为不是界面 -
这完全取决于您。如果您在一家拥有自己的最佳实践清单的公司工作,那么您会询问和阅读文件。但既然这是你的项目,那就去做吧。最好的学习方法是犯错。
标签: php