·
yeah

我觉得提供可能性和一定要用于实践还是不一样的。

实践上来说,接口设计的目的就是为了把特定的信息暴露出来,不关心的信息隐藏在实现里。把接口也隐藏起来就失去意义了。

从实践上说也是每个类、每个接口都应该独立公开,真正需要用内部类的情况更接近struct结构体的用法,这种类往往结构简单且只在这个类里面使用,如果复杂到需要用接口进行抽象,那很可能外部类承担了过多的职责,应该拆分,并把内部接口也放出去public,实现作为内部成员就足够了。

就像例子里说,添加这些特性的最初原因可能是出于对严格的语法一致性的考虑,但是我总认为,一旦你了解了某种特性,就总能够找到它的用武之地 有没有可能设计者根本就没打算让人这么用。