静态内部类是一个好主意还是糟糕的设计?

Dre*_*rew 5 oop inheritance class nested-class inner-classes

我发现我有几个地方设有公共静态内部类,扩展"帮助"类使我的代码更加类型安全,在我看来,可读.例如,假设我有一个"SearchCriteria"类.我搜索的不同内容有很多共性(搜索术语,然后是一组搜索术语类型,日期范围等).通过在静态内部类中扩展它,我将扩展和可搜索的紧密耦合在一起有特定差异的班级.这在理论上似乎是一个坏主意(Tight Coupling Bad!),但扩展特定于这个可搜索的类(One Class,One Purpose).

我的问题是,根据您的经验,使用静态内部类(或者您的语言等同于什么)使您的代码更具可读性/可维护性,或者最终在EOF中咬你?

此外,我不确定这是否是社区维基材料.

Mic*_*rdt 3

对我来说听起来完全合理。通过将其设为内部类,您可以轻松查找它,并在可搜索类发生更改时成为明显的候选者进行审查。

只有当你将那些并不真正属于在一起的东西耦合在一起时,仅仅因为其中一个碰巧调用了另一个,紧耦合才是不好的。对于密切合作的类,例如,就像您的情况一样,其中一个类的存在是为了支持另一个类,那么这就是所谓的“凝聚力”,这是一件好事