单选题
最少知识原则(也称为迪米特法则)是面向对象设计原则之一,是指一个软件实体应当尽可能少地与其他实体发生相互作用。这样,当一个实体被修改时,就会尽可能少地影响其他的实体。下列叙述中,“______”不符合最少知识原则。
A.在类的划分上,应当尽量创建松耦合的类
B.在类的设计上,只要有可能,一个类型应当设计成不变类
C.在类的结构设计上,每个类都应当尽可能提高对其属性和方法的访问权限
D.在对其他类的引用上,一个对象对其他对象的引用应当降到最低
【正确答案】
C
【答案解析】[解析] 面向对象设计原则包括如下。
单一职责原则:设计目的单一的类。
开放一封闭原则:对扩展开放,对修改封闭。
李氏(Liskov)替换原则:子类可以替换父类。
依赖倒置原则:要依赖于抽象,而不是具体实现;针对接口编程,不要针对实现编程。
接口隔离原则:使用多个专门的接口比使用单一的总接口要好。
组合重用原则:要尽量使用组合,而不是继承关系达到重用目的。
迪米特(Demeter)原则(最少知识法则):一个对象应当对其他对象有尽可能少的了解,其中迪米特原则的主要理念是让一个对象尽可能少地了解其他对象,这样,就能尽可能少地产生违规操作,让设计出来的系统更稳定。在本题中,C选项提到“尽可能提高对其属性和方法的访问权限”违背了迪米特原则。