问题:
用户通过html字段发送字符串,并要求系统检索行 来自数据库。
字符串是完整日期时间的部分或完整表示。
完整的格式是" yyyy-mm-ddThh:ii:ss.ss + hh:ii"
但用户也可以发送部分格式" yyyy-dd"," mm-dd"," hh"等等..
我需要构建一个在具体表示中转换用户输入的过程。
我看看Builder模式,以编程方式构建日期时间的所有部分。
我还查看解释器模式以解析用户输入,告诉构建器需要哪个部分。
问题:
这可能是正确的方法吗?
如何将未定义的字符串(具有多种组合)解析为具体的类表示?
简化的代码:
class Director {
$interpreter;
$builder;
public function __construct( $interpreter, $builder ) {
$this->interpreter = $interpreter;
$this->builder = $builder;
}
public function buildFromString( $format ) {
$this->interpreter->parse( $format );
}
}
class Interpreter {
public function parse( $format ) {
//a good solution to parse the undefined input string
}
}
由于
-------------------补充道 因为这个过程会导致各种各样的误解,如果用户输入" 10"用户界面要求用户定义他是否需要"年10","月10"或者"分钟10"但这是不可能的。