何时使用策略或外观?

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

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

public interface methods {
    public void doOperation(int id, String type, int area, String address, String listingStatus);
}

public class methodUse {
    private methods method;

    public methodUse(methods method) {
        this.method = method;
    }

    public void executeMethod(int id, String type, int area, String address, String listingStatus){
         method.doOperation(id, type, area, address, listingStatus);
    }
}

public class methodUpdate implements methods{
    private SystemAdmin systemAdmin = new SystemAdmin();

    @Override
    public void doOperation(int id, String type, int area, String address, String listingStatus) {
        systemAdmin.updatePropertyListing(id, listingStatus);

    }
}

public class methodDelete implements methods{
   private SystemAdmin systemAdmin = new SystemAdmin();

    @Override
    public void doOperation(int id, String type, int area, String address, String listingStatus) {
      systemAdmin.deleteListing(id);
    }
}

public class methodAdd implements methods{
    private SystemAdmin systemAdmin = new SystemAdmin();

    @Override
    public void doOperation(int id, String type, int area, String address, String listingStatus) {
        systemAdmin.addListing(id, type, area, address, listingStatus);
    }

}

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

fbcarpbf

fbcarpbf1#

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

相关问题