如果Person类有4个子类,分别是man, woman, old, young, 那肯定是不对的。因为man也可能是old(老男人),这种建模法会导致含混或者冗余的业务逻辑。
但是,这种错误应该怎么用简练的语言来称呼? 我一直在想这个问题,今天找了一下,终于找到了: 在逻辑学中,这叫 “
划分标准不同一” — "man/woman/old/young"是单次划分,但同时使用了sex和age这两个标准,这是不对的。
它产生的症状,可以称为“
子项相容”,即man中也有old, old中也有man.