Java 命令模式在这里适用吗?
我有一个值对象(VO)。字段/属性之一是保存字符串值的“sourceKey” 例如:Java 命令模式在这里适用吗?,java,oop,design-patterns,command-pattern,Java,Oop,Design Patterns,Command Pattern,我有一个值对象(VO)。字段/属性之一是保存字符串值的“sourceKey” 例如: 字符串sourceKey1=“cust12/proj1/site1/images/somefile.JPG” 字符串sourceKey2=“cust12/area1/site1/images/somefile.JPG” 现在,我需要转换这个源密钥,并通过首先将源密钥断开“/”然后: -通过呼叫客户服务替换cust12-通过Id 12查找客户,并通过dest键中的客户名称替换cust12。 -与替换proj1类似
字符串sourceKey1=“cust12/proj1/site1/images/somefile.JPG”
字符串sourceKey2=“cust12/area1/site1/images/somefile.JPG” 现在,我需要转换这个源密钥,并通过首先将源密钥断开“/”然后:
-通过呼叫客户服务替换cust12-通过Id 12查找客户,并通过dest键中的客户名称替换cust12。
-与替换proj1类似,调用项目服务,按id 1查找项目,并按项目名称替换proj1。
-等等 因此,为了以干净的方式实现这一点,我考虑编写命令——通过调用适当的服务(customerService、projectService等)获取对象的每个命令。然后在客户机级别,只需解析sourceString并建立一个要执行的命令列表,最后使用commands列表建立一个目标键
我想的方向对吗?命令模式是干净的/OO方式吗?不,命令模式不适合这个问题。从面向对象的角度来看,我将首先将源键建模为
对象
,而不是字符串
,以避免编程
它看起来像一个SourceKey
对象将依赖于CustomerService
和ProjectService
,并将包含五个字段,它可以根据需要组合成一个字符串。换句话说,尝试将字符串
转换逻辑封装到它自己的对象