我有一个值对象(VO)。字段/属性之一是保存字符串值的'sourceKey'。
例如:
字符串sourceKey1 =“ cust12 / proj1 / site1 / images / somefile.JPG”
字符串sourceKey2 =“ cust12 / area1 / site1 / images / somefile.JPG”
现在,我需要对这个sourceKey进行某种转换,并通过先用'/'分隔源密钥,然后再构建目标密钥,然后:
-通过致电客户服务来替换cust12-通过id 12查找客户,并在dest键中用客户名称替换cust12。
-与替换proj1类似-调用项目服务,用ID 1查找项目,然后用项目名称替换proj1。
-等等。
因此,为了以一种简洁的方式实现这一目标,我想到编写命令-每个命令都通过调用适当的服务(customerService,projectService等)来获取对象。然后在客户端级别,只需解析sourceString并构建要执行的命令列表,然后最后使用命令列表构建目标键。
我在朝正确的方向思考吗?命令模式是这样做的clean / OO方法吗?
答案 0 :(得分:0)
否,命令模式不适合此问题。从OOP的角度来看,我将从将源密钥建模为Object
而非String
开始,以避免进行stringly-typed编程。
看起来SourceKey
对象将依赖于CustomerService
和ProjectService
,并且将包含五个字段,可以根据需要将它们组合成一个String
。换句话说,请尝试将String
转换逻辑封装到自己的Object
中。