我发现我有几个地方设计了公共静态内部类来扩展“帮助程序”类,使我的代码更加类型安全,并且在我看来更具可读性。例如,假设我有一个“SearchCriteria”类。我搜索的不同事物有很多共性(一个搜索词,然后是一组搜索词类型、日期范围等)。通过在静态内部类中扩展它,我将扩展和可搜索紧密耦合在一起类与具体差异。这 似乎 理论上这是一个坏主意(紧耦合不好!),但扩展是特定于这个可搜索类的(一个类,一个目的)。

我的问题是,根据您的经验,使用静态内部类(或任何您的语言等效项)是否会使您的代码更具可读性/可维护性,或者这最终会在 EOF 中困扰您吗?

另外,我不确定这是否是社区维基材料。

有帮助吗?

解决方案

声音完全合理的我。通过成为一个内部类,你因此很容易找到并审查了明显的候选人时,搜索类的变化。

紧耦合只有不好的时候,你对夫妇的事情,真的不属于一起的,只是因为他们中的一个发生调用另一个。对于合作密切类,例如时,在你的情况下,其中一人的存在是为了支持其他的话,那就是所谓的“凝聚力”,这是一个的好事的。

其他提示

请注意,类不是重用的单位。因此,类之间的一些耦合是正常的并且是预期的。重用的单位通常是相关类的集合。

在Python中,我们有多种结构。

  1. 包裹。它们包含模块。这些本质上是包含一些 Python 机制的目录。

  2. 模块。它们包含类(和函数)。这些是文件;并且可以包含任意数量的密切相关的类。通常,“内部类”业务是在这个级别处理的。

  3. 课程。它们可以包含内部类定义以及方法函数。有时(不是经常)实际上可能会使用内部类。这种情况很少见,因为类之间的模块级耦合通常是非常清晰的。

使用内部类是确保你不会重复自己所有的地方唯一的条件 - 在 - 确保,当你定义一个内部类,你不会需要其他任何地方使用该功能和,即该功能必然加上外部类。你不想用一大堆内部类的所有执行完全相同的setOrderyByNameDesc()方法结束了。

在“松耦合”的关键是保持两个班分开,这样,如果有你“SearchCriteria”类什么代码更改将不得不在其他类的变化。我认为你是在谈论静态内部类可能使维护代码的噩梦。在SearchCriteria一个变化可能给你寻遍所有的静态类的弄清楚哪些是现在,因为更新的打破。就个人而言,我会从任何这样的内部类远离,除非它是真正需要的某些原因。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top