【发布时间】:2012-12-06 04:06:17
【问题描述】:
我有一个Display 对象来处理脚本的 HTML 输出。它有一个mode 属性,它定义了如何生成输出的许多方面。有几种模式,我以后可能会添加更多。每种模式都暗示着它自己的参数。例如,author 模式将暗示authorID。 search 模式将暗示 Search 对象作为参数,其中将包含查询信息。 comment 模式将暗示 postID 和 commentID 参数。
所以,mode 有一个name 和一些parameters,具体取决于name。
我决定创建一个Display_Mode 对象,它有两个属性:name 和parameters。但是如何将parameters 分配给names?所以如果我有comment 模式,那必然意味着有postID 和commentID 参数?
我目前的解决方案是这样的:
class display_mode{
public $name;
public $params;
public function __construct($name)
{
$this->name = $name;
switch ($this->name){
case 'comment':
$this->params = array('postID', `commentID`);
break;
case 'author':
$this->params = array('authorID');
}
//etc..
}
}
这似乎有点乱。有没有更好的办法?
UPD:给出的答案让我问another question,关于整个设计,这也提供了这个设计的背景。
【问题讨论】:
标签: php oop properties