当我读到有关在类中嵌套接口时,其意图似乎是通过组合封装接口的抽象行为。但是,对我来说,在类外部创建接口更有意义,然后使用getter / setter并返回接口类型的实例。必须有一个我没有看到的好处。这只是一个“选择”的问题。
答案 0 :(得分:2)
如果接口与某个类强烈相关,则将其嵌套在类中可能是合理的。例如:SurfaceHolder.Callback,它允许客户端接收有关Android中曲面更改的信息。 Callback接口嵌套在SurfaceHolder中,并且更容易访问并在该上下文中找到它。
但是,对于诸如Runnable之类的泛型接口,它由一个由线程执行的实现的类实现,它完全在一个类之外(在本例的java.lang包中)。这更有意义,因为这个接口可以被任何类使用,不一定在特定的上下文中。)
答案 1 :(得分:0)
如果我们谈论高度复杂,可扩展和可重复使用的系统,这不是一个选择问题。有如此命名的S.O.L.I.D.假设接口的使用,设计原则(依赖注入和控制反转,如果我们专门讨论)。使用它们的原因是:
1)代码中模型的分离。如果你的类在其他项目中不能用于紧密耦合时,你在类中创建对象
2)为正确的单元测试创建模拟的可能性。您可以通过测试最高级别调用较低级别的所有方法来测试具体层。
3)接口可以在很多地方组合并在整个系统中使用,因此许多其他类可以使用邮件服务器,例如