我有一个Display
处理脚本的 HTML 输出的对象。它有一个mode
属性,它定义了如何生成输出的许多方面。有几种模式,我以后可能会添加更多。每种模式都暗示着它自己的参数。例如,一个author
模式意味着一个authorID
. search
模式意味着将对象Search
作为参数,其中将包含查询信息。一个comment
模式意味着一个postID
和commentID
参数。
因此, amode
有 aname
和一定数量的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:给定的答案让我问了另一个关于整个设计的问题,这也为这个设计提供了背景。