当前位置:高级系统架构师题库>面向对象方法题库

问题:

[单选] 对于违反里氏替换原则的两个类A和B,可以采用的候选解决方案是()

A . 尽量将一些需要扩展的类或者存在变化的类设计为抽象类或者接口,并将其作为基类,在程序中尽量使用基类对象进行编程
B . 创建一个新的抽象类C,作为两个具体类的超类,将A和B共同的行为移动到C中,从而解决A和B行为不完全一致的问题
C . 将B到A的继承关系改成组合关系
D . 区分是Is-a还是Has-a。如果是Is-a,可以使用继承关系,如果是Has-a,应该改成组合或聚合关系

面向对象的设计模型包含以(1)表示的软件体系结构图,以(2)表示的用例实现图,完整精确的类图,针对复杂对象的状态图和用以描述流程化处理的活动图等。空白(2)处应选择() A.部署图。 包图。 协同图。 交互图。 面向对象的设计模型包含以(1)表示的软件体系结构图,以(2)表示的用例实现图,完整精确的类图,针对复杂对象的状态图和用以描述流程化处理的活动图等。空白(1)处应选择() A.部署图。 包图。 协同图。 交互图。 下列关于UML的叙述中,正确的是() UML是一种语言,语言的使用者不能对其扩展。 UML仅是一组图形的集合。 UML仅适用于系统的分析与设计阶段。 UML是独立于软件开发过程的。 UML的事物是对模型中最具有代表性的成分的抽象,(1)是模型的静态部分,描述概念或物理元素;(2)用来描述、说明和标注模型的任何元素。空白(2)处应选择() A.分组事物。 注释事物。 结构事物。 行为事物。 UML的事物是对模型中最具有代表性的成分的抽象,(1)是模型的静态部分,描述概念或物理元素;(2)用来描述、说明和标注模型的任何元素。空白(1)处应选择() A.结构事物。 分组事物。 行为事物。 注释事物。 对于违反里氏替换原则的两个类A和B,可以采用的候选解决方案是()
参考答案:

  参考解析

里氏替换原则是面向对象设计原则之一,由BarbaraLiskov提出,其基本思想是,一个软件实体如果使用的是一个基类对象,那么一定适用于其子类对象,而且觉察不出基类对象和子类对象的区别,即把基类都替换成它的子类,程序的行为没有变化。反过来则不一定成立,如果一个软件实体使用的是一个子类对象,那么它不一定适用于基类对象。
在运用里氏替换原则时,尽量将一些需要扩展的类或者存在变化的类设计为抽象类或者接口,并将其作为基类,在程序中尽量使用基类对象进行编程。由于子类继承基类并实现其中的方法,程序运行时,子类对象可以替换基类对象,如果需要对类的行为进行修改,可以扩展基类,增加新的子类,而无须修改调用该基类对象的代码。

在线 客服