2

可能是一个普遍的问题,但是拥有一个接口(Service)和它的实现(ServiceImpl)被认为是一种不好的做法,但是ServiceImpl包含接口中不包含的私有实用程序方法?

4

4 回答 4

9

一点也不坏的做法——我希望几乎所有重要的具体实现类都包含私有方法。替代方法通常是在类中拥有太大的方法体。

不要忘记,课堂的任何人都不应该关心你是否有很多私有方法。他们应该只关心您的公共 API(或相关的包/受保护的 API)。

于 2012-05-25T18:20:11.877 回答
5

不,一点也不,正是你应该做的。

于 2012-05-25T18:20:31.813 回答
5

接口的原因是您定义了一个合同,您的实现可以有任意数量的私有方法来使该合同工作。

这绝不被认为是不好的做法,添加到它你的实现类也可以提供公共方法。

如果您不使用接口提供的 API,而是使用实现类的公共方法,这在一般情况下绝对是一种不好的做法,尽管有时无法避免这种情况。

于 2012-05-25T18:20:43.827 回答
5

不,没关系。您的 Service 接口只列出了它想要向世界公开的内容。如何实施取决于您。如果使用这些私有实用程序方法来实现接口,那就没问题了。

于 2012-05-25T18:20:46.353 回答