所以我和我的团队正在进行这个房地产项目(学校作业),如果我们使用了错误使用的策略模式,我们会感到困扰,应该使用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。
我想问大家,我们所做的是不是正确地实施了战略模式。
1条答案
按热度按时间fbcarpbf1#
问:我什么时候应该使用“策略”模式?
https://refactoring.guru/design-patterns/strategy
当您希望在对象中使用算法的不同变体,并且能够在运行时从一种算法切换到另一种算法时,请使用策略模式。
因此,在这种情况下,选择“战略”模式并不是“错误的”
问:我们所做的是正确实施战略模式吗?
声明算法的所有变体通用的策略接口。
一个接一个,将所有算法提取到自己的类中。它们都应该实现策略接口。
因此,是的,您已经正确地实现了它。
问:那么“正面”呢?
正如约翰·布林格正确地说的那样:
策略和门面模式不是相互替代的。一个程序可能同时使用这两种方法是合理的。对于如何设计一个程序或哪些设计模式可能有用,通常也没有一个单一的正确答案。