-1

我有时会偶然发现对公共 API 方法进行方法命名的决定。

变体 A:

public void play();
public void stop();
public void pause();

变体 B:

public enum CallType {
            PLAY,
            STOP,
            PAUSE
        }
public void execute(CallType type);

我认为对于 API 客户端来说,拥有变体 A 的接口更方便,因为不需要参数(和检查!)。

但我也认为变体 B 的公共接口也更小,开发人员的任务更容易。

您对这些方法有何看法?

4

1 回答 1

1

如果调用类型的数量相当少,我会说每个操作都有单独的方法(变体 A)是值得的。它使界面更易于阅读,并且您不必将类的用户转移到(枚举的)额外的 JavaDoc 页面,以便了解他使用您的界面的选项。随着调用类型数量的增加,您可能会得到一个具有更大契约(即更多方法)的接口,因此可能值得使用枚举。但请注意,在这种情况下,您的execute方法可能会变得太大(可能使用switch包含很多案例的语句)。

我认为应该通过什么reasonably方式给出答案,这个没有确切的答案。这取决于开发人员的偏好、组织中的编码标准、静态代码检查规则(如果您有分析器)等等。

于 2014-05-22T20:59:23.110 回答