我想在Java中使用策略模式。但是,如果我在代码库中添加大量文件或编写详细代码,我的老板不喜欢它。看来,对于策略模式,我必须为一个接口创建一个文件,然后再创建五个附加文件,这样我就可以为我的五种可能策略中的每一个创建一个类。
有没有办法用更少的文件和更少的代码来表达Java中的策略模式?
我认为如果我的策略变体可以在Enum或一个易于组合的Set上表示,那将是理想的。
答案 0 :(得分:1)
我认为你应该和老板坐下来向他/她解释一下文件少!=好的代码。至少尝试解释模式本身以及如何拥有多个类,每个类都有自己的特定目的,更适合测试,维护等....
就我个人而言,我发现代码更加冗长,有很多关于适当多态会使代码更容易理解的地方的IF语句。
PS:是的,枚举可以通过使用匿名子类构造来实现行为:
public enum Foo {
BAR() {
public void baz() { ... }
};
public abstract void baz();
}
虽然我不确定我会建议使用它,除非你绝对不得不这样做。