何时使用策略或外观?

dzhpxtsq  于 2021-08-09  发布在  Java
关注(0)|答案(1)|浏览(403)

所以我和我的团队正在进行这个房地产项目(学校作业),如果我们使用了错误使用的策略模式,我们会感到困扰,应该使用facade。我正在为数据库的crud编写代码,我使用策略模式从jform中调用这些crud方法(添加、删除、更新)。我们仍在开始学习不同的设计模式,因此,如果这是一个正确的实现,我们愿意提供帮助。
这是我的策略模式代码

  1. public interface methods {
  2. public void doOperation(int id, String type, int area, String address, String listingStatus);
  3. }
  4. public class methodUse {
  5. private methods method;
  6. public methodUse(methods method) {
  7. this.method = method;
  8. }
  9. public void executeMethod(int id, String type, int area, String address, String listingStatus){
  10. method.doOperation(id, type, area, address, listingStatus);
  11. }
  12. }
  13. public class methodUpdate implements methods{
  14. private SystemAdmin systemAdmin = new SystemAdmin();
  15. @Override
  16. public void doOperation(int id, String type, int area, String address, String listingStatus) {
  17. systemAdmin.updatePropertyListing(id, listingStatus);
  18. }
  19. }
  20. public class methodDelete implements methods{
  21. private SystemAdmin systemAdmin = new SystemAdmin();
  22. @Override
  23. public void doOperation(int id, String type, int area, String address, String listingStatus) {
  24. systemAdmin.deleteListing(id);
  25. }
  26. }
  27. public class methodAdd implements methods{
  28. private SystemAdmin systemAdmin = new SystemAdmin();
  29. @Override
  30. public void doOperation(int id, String type, int area, String address, String listingStatus) {
  31. systemAdmin.addListing(id, type, area, address, listingStatus);
  32. }
  33. }

每次单击特定按钮时,都会在jform上调用这些类,例如,add按钮执行strategy add。
我想问大家,我们所做的是不是正确地实施了战略模式。

fbcarpbf

fbcarpbf1#

问:我什么时候应该使用“策略”模式?
https://refactoring.guru/design-patterns/strategy
当您希望在对象中使用算法的不同变体,并且能够在运行时从一种算法切换到另一种算法时,请使用策略模式。
因此,在这种情况下,选择“战略”模式并不是“错误的”
问:我们所做的是正确实施战略模式吗?
声明算法的所有变体通用的策略接口。
一个接一个,将所有算法提取到自己的类中。它们都应该实现策略接口。
因此,是的,您已经正确地实现了它。
问:那么“正面”呢?
正如约翰·布林格正确地说的那样:
策略和门面模式不是相互替代的。一个程序可能同时使用这两种方法是合理的。对于如何设计一个程序或哪些设计模式可能有用,通常也没有一个单一的正确答案。

相关问题