这个问题的最佳设计模式

时间:2010-11-19 17:29:12

标签: java command design-patterns

我需要构建各种命令并将它们作为参数传递给另一个程序。

命令共享一些信息和格式,但参数数量不同。

例如,对于CRUD操作,我可能会生成以下命令字符串:

"create""host_ip""database""user_id""profile""personal_data1""personal_data2""personal_datan"
"retrive""host_ip""database""user_id"
"update""host_ip""database""user_id""personal_data1""personal_data2""personal_datan"
"delete""host_ip""database""user_id"

我相信有更聪明的方法可以做到这一点&通过在这个神奇的网站上分享,我可能会做得更好。

2 个答案:

答案 0 :(得分:5)

可能太明显但你想到了Command Pattern?

  

在面向对象的编程中,   命令模式是一种设计模式   一个对象用来表示   并封装所有信息   需要稍后调用方法   时间。这些信息包括   方法名称,拥有的对象   方法和方法的值   参数。总是三个词   与命令模式相关联   是客户,调用者和接收者。该   客户端实例化命令对象   并提供所需的信息   稍后调用该方法。   调用者决定何时使用该方法   应该叫。接收器是   包含的类的实例   方法的代码。使用命令   对象使构造更容易   需要的一般组件   委托,序列或执行方法   在他们选择的时候打电话   无需知道所有者   方法或方法参数。

答案 1 :(得分:1)

看起来您需要一个可以构建应用程序命令的构建器类。如果在所有构建方法之间使用了任何对象,则通过构建器构造函数将其发送。

public class CommandBuilder() {

    public String buildCreate(..) {..}

    public String buildRetrieve(..) {..}

    public String buildUpdate(..) {..}

    public String buildDelete(..)
}

如果你想创建更多的抽象,你总是可以返回一个只知道如何按需执行所述命令的对象。