最近在看设计模式,但是不知道如何区分抽象工厂模式中的产品族和等级结构,有时候我在想,可不可以把这两个概念调换一下呢?
你爷爷和你外公,你爸和你姨妈,你和你表弟构成3个产品等级结构。
你爷爷你爸和你,你表弟你姨妈和你外公构成2个产品族。。
等级结构是抽象的,是一个概念,最好不要带属性,比如说猫,但是你没法指定哪一只猫;产品族是相对具体的,比如说白猫,就比猫更具体;当然你要把白猫放到等级结构也无所谓,但是白猫就属于比较具体的“概念”了,因为它带有比较具体的属性,所以我觉得放到抽象工厂里面并不合适,因为在具体工厂中要给他赋予区别于其他产品的属性。
比如说,你把“猫”放到具体工厂,而把“白”放到抽象工厂,那么“猫”就属于“白”的属性了,至少我觉得很奇怪…