我一直在尝试用PHP包围空对象。
如果我的课程看起来像这样:
class A {
public function test() {
$test = $this->run( 'test', __FUNCTION__ );
}
public function run($callback) {
if ( 'test' ) == false {
$null = new A_Null_Object;
return $null->$callback();
}
}
然后使用一个子类作为空对象:
class A_Null_Object extends A {
public function test() {
return 'Test was invalid';
}
}
创建一个“非null”对象/子类也没有意义,这样可以在父类中没有任何额外的格式化或条件的情况下返回$ test吗? (这首先是重构原始类的目的)或者这首先是否打败了null对象的目的?
我觉得我在这里遗漏了一些东西,所以任何意见都会受到赞赏。