у меня есть интерфейс с Create, Update, Delete и Select операций, поэтому для этого я думал, разработать его с помощью командаКак реализовать команда для CRUD операций
MyServlet
public void doGet(HttpServletRequest req,HttpServletResponse res)
throws ServletException,IOException
{
InsertCommand insertCommnd = new InsertCommand();
DeleteCommand deleteCommnd = new DeleteCommand();
// Создание Работника DTO с параметрами запроса и передать его INVOKER
if(req.getParameter("action").equals("insert"))
Invoker invoker = new Invoker();
invoker.setCommand(insertCommnd);
invoker.pressButton(emp);
}
// * Invoker *
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();
}
DeleteCommand .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 из базы данных?
Также, пожалуйста, поделитесь своими идеями по этому дизайну, так как я новичок в разработке программного обеспечения.
Это «просто \» хлопнуть все \ «» подход я упоминаю в моем ответе. Это действительно намного чаще, чем CQRS и отлично подходит для большинства случаев. Есть случаи, когда CQRS лучше подходит, поэтому «неправильный шаблон» слишком силен IMO (моя собственная «шлепать все» формулировка может быть слишком жесткой). Оба действительны, DAO проще и гораздо чаще. – Barend
@ user384706 Спасибо, значит, вы хотите сказать, что идите в Command Pattern в случае, если типы возвращаемого типа будут иметь одинаковый тип? – Pawan
@ yyyi777 хороший, прочный подход состоит в том, чтобы заставить командные классы внедрять 'java.util.concurrent.Future' (самый простой способ - это расширение или перенос в' java.util.concurrent.FutureTask'). – Barend