可能是一个普遍的问题,但是拥有一个界面(服务)及其实现( ServiceImpl )被认为是一种不好的做法,但是 ServiceImpl 包含接口中未包含的私有实用程序方法?
答案 0 :(得分:9)
一点都不差 - 我希望几乎任何非平凡的具体实现类都包含私有方法。替代方案往往是在课堂上有太多的方法体。
不要忘记,除了外,无论你是否有很多私人方法,班级都应该关心。他们应该只关心您的公共API(或相关的包/受保护的API)。
答案 1 :(得分:5)
不,根本不应该,你应该做什么。
答案 2 :(得分:5)
接口的原因是您定义了一个合同,您的实现可以使用任意数量的私有方法来使该合同正常工作。
这绝不是一种被认为是不好的做法,添加它你的实现类也可以提供公共方法。
如果不是使用接口提供的API,而是使用实现类的公共方法,这在一般情况下绝对是一种不好的做法,尽管有时会出现无法避免的情况。
答案 3 :(得分:5)
不,那没关系。您的服务界面只列出了它想要向世界公开的内容。它是如何实现的取决于你。如果使用这些私有实用程序方法来实现接口,那么你没问题。