既然没有人问过,我还没有找到合适的答案;简单地说:什么是退化类?
各种语言的示例会有所帮助......除了UML。 :P
答案 0 :(得分:8)
我也在寻找一个明确的答案,这是我迄今为止对Google的理解:
在数学中,简并表示极限情况,其中一类对象改变其性质以便属于另一种,通常更简单,类。
在编程中,遵循“折叠”的概念。在简单的事情中,简并似乎以多种方式使用:
最后,您已经看到只有主方法的类。他们唯一的目的是启动一个计划。从设计的角度来看,这些是类的简单例子。
Effective Java 2nd edition:
第14项:在公共课中,使用访问者方法,而不是公共字段
偶尔,您可能会想要编写退化类 除了分组实例字段之外没有任何其他目的:
// Degenerate classes like this should not be public!
class Point {
public double x;
public double y;
}
例如,List和List的类共享普通的旧Java类List。 List被称为泛型类的原始类型。每个泛型都有一个原始类型。 它是简并的“普通”Java表单 ,从中删除了所有泛型类型信息,并将类型变量替换为像Object这样的通用Java类型。
Effective Java 2nd edition:
// The worst possible legal hash function - never use!
@Override public int hashCode() { return 42; }
这是合法的,因为它确保了相等的对象具有相同的哈希码。这很糟糕,因为它确保每个对象都具有相同的哈希码。因此,每个对象都会散列到同一个存储桶, 散列表会退化为链接列表 。
Big Java:
但是,有时你会遇到处理 退化输入的哲学问题:空字符串,没有区域的形状 ,等等。
答案 1 :(得分:2)
从here我猜测这是一个没有行为的类(即没有方法)。