我刚刚阅读了一篇关于空对象模式的精彩文章(http://phpmaster.com/the-null-object-pattern-polymorphism-in-domain-models/),我正计划将它实现到一些现有代码中。
我的问题是,一个全新的“空类”会是最好的方法吗?以前我在构造函数中将默认值设置为 NULL。然后我可以创建类的空壳。例如:
class person{
private $_personId;
private $_name;
private $_email;
private $_phone;
public function __construct($_personId, $_name, $_email, $_phone = NULL){
//set the vars here
}
}
然后,如果我想要一个真实的对象,我会这样做:
$person = new person(1, 'John Doe', 'doe@gmail.com');
如果我想要一个“空”对象,我会这样做:
$person = new person(NULL, NULL, NULL);
这种方法有什么陷阱吗?