膨胀类和标记类之间有什么区别?

时间:2015-03-20 13:30:52

标签: java design-patterns anti-patterns

正如我在Effective java

中读到的那样
  

膨胀的类层次结构可能导致包含许多的膨胀类   只有它们的参数类型不同的方法,就像它们一样   类层次结构中没有类型可以捕获常见行为。

Link

  

臃肿的类通常有许多特殊情况:属性或行为   对某些情况有效但对其他情况无效。 程序员经常尝试   通过引入类型标签处理特殊情况

并且Tagged类和膨胀类之间存在相似性,如Effective java中提到的那样:

  

一个类,其实例有两种或更多种类,并包含一个标记   指示实例风格的字段。实例负担沉重   与不相关的领域属于其他风味。

总结这两个类可能有标记类型/字段两个类都有很多实现(在一个类中模拟了很多功能)。

我对这些术语感到困惑,我想知道,这两个 Bloated类和Tagged类之间有什么区别?

1 个答案:

答案 0 :(得分:4)

  • 臃肿的课程臃肿(见下文)。
  • 标记的类有一个或多个标记。
  • 标记的类可能会膨胀,不一定标记膨胀的类。

"臃肿"是(有点)主观的,"标记"很难确定。 "鼓胀症"可以参考很多东西;关注点分离不佳,封装丢失,抽象层次不同等等。

"标记"不太主观,因为会有一个定义功能,抽象等分离的字段。