Java中战略模式的简洁表达

时间:2012-07-25 21:47:34

标签: java strategy-pattern

我想在Java中使用策略模式。但是,如果我在代码库中添加大量文件或编写详细代码,我的老板不喜欢它。看来,对于策略模式,我必须为一个接口创建一个文件,然后再创建五个附加文件,这样我就可以为我的五种可能策略中的每一个创建一个类。

有没有办法用更少的文件和更少的代码来表达Java中的策略模式?

我认为如果我的策略变体可以在Enum或一个易于组合的Set上表示,那将是理想的。

1 个答案:

答案 0 :(得分:1)

我认为你应该和老板坐下来向他/她解释一下文件少!=好的代码。至少尝试解释模式本身以及如何拥有多个类,每个类都有自己的特定目的,更适合测试,维护等....

就我个人而言,我发现代码更加冗长,有很多关于适当多态会使代码更容易理解的地方的IF语句。

PS:是的,枚举可以通过使用匿名子类构造来实现行为:

public enum Foo {
   BAR() {
     public void baz() { ... }
   };

   public abstract void baz();
}

虽然我不确定我会建议使用它,除非你绝对不得不这样做。