java - 如何实现 CRUD 操作的命令模式

标签 java design-patterns

我有一个带有创建、更新、删除和选择操作的用户界面,因此我想使用命令模式来设计它

MyServlet

public void doGet(HttpServletRequest req,HttpServletResponse res)
     throws ServletException,IOException
    {

InsertCommand insertCommnd = new InsertCommand();
DeleteCommand deleteCommnd = new DeleteCommand();

//创建带有请求参数的 DTO Employee 并将其传递给调用者

if(req.getParameter("action").equals("insert"))

  Invoker invoker = new Invoker();

 invoker.setCommand(insertCommnd );
 invoker.pressButton(emp);


    }

//*调用者*

public class Invoker
{
    private Command command;

    public void setCommand(Command command)
    {
        this.command = command;
    }


    public void pressButton(Employee emp)
    {
        command.execute(emp);
    }

}

//命令.java

public interface Command
{
public void execute();
}

删除命令.java

public DeleteCommand implements Command
{   

Employee emp;

public DeleteCommand(Employee emp)
{

this.emp = emp;
}

public void execute()
{
// SQL Query to delete Records
}

}

InsertCommand.java

 public InsertCommand implements Command
    {
     Employee emp ;
    public InsertCommand(Employee emp)
    {

    this.emp = emp;
    }

    public void execute()
    {
    // SQL Query to insert Records
    }

    }

同样有一个更新记录命令

我的问题是,如果选择操作从数据库返回 ArrayList,我该如何处理这个问题?

另外,请分享您对此设计的想法,因为我是设计软件的新手。

最佳答案

您采用了正确的方法,这意味着您正在尝试在代码中使用设计模式。
在您的情况下,您使用了错误的模式。您应该使用 DAO 模式。

但是说错了并不代表你的方法不能用,只是DAO是DB的标准而已。

在您的情况下,您的问题是您的 execute 方法返回 void 并且您需要一个返回 List 的方法(额外)。

您可以为 select 创建第二个方法,该方法返回 List 并为其指定一个通用名称,然后在其他命令中只需抛出 UnsupportedMethod 异常

例如

public interface Command 
{ 
public void execute(); 
public List fetch();  
}

关于java - 如何实现 CRUD 操作的命令模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9954198/

相关文章:

java - 集合和数组列表

java - 半唯一嵌套 Java 映射?

javascript - 在 props 对象之外传递 "props"是反模式吗?

design-patterns - 如何管理经常修改的生产代码?

design-patterns - 策略模式和依赖注入(inject)有什么区别?

java - Tomcat 拒绝部署 CSS 文件

java - 使用 Mockito 的 ClassCastException

java - 如何在java中使用aspose word将FieldFormula添加到Cell中

design-patterns - 命令设计模式使用

java - 用于从更复杂的对象构建对象的设计模式