一 单项选择题
1.为了应对需求变更,好的设计方案会封装(隐藏)变更,其应用的设计原则为()。
LSP
DSP
OCP
SRP
[参考答案] OCP
2.当继承体系中的类不符合LSP时,说明继承耦合为高耦合,可以()降耦。
应用多态
应用DSP
应用OCP
将继承替换为组合
[参考答案] 将继承替换为组合
3.下面代码耦合为()。
class test {
int number;
public double sqrtANumber(){
return Math.sqrt(number);
}
控制耦合
印记耦合
数据耦合
无耦合
[参考答案] 数据耦合
二 不定项选择题
1.为提高设计方案的可修改性和灵活性,可以在设计方案中使用()。
OCP
DIP
设计模式
SRP
[参考答案]
OCP
DIP
设计模式
SRP
2.当面向对象设计中发生访问耦合时,可以选择的降耦方法有()。
针对接口编程
接口最小化
迪米特法则
里氏替换原则(LSP)
[参考答案]
针对接口编程
接口最小化
迪米特法则
3.当面向对象设计中发生访问耦合时,可以选择的降耦方法有()。
分解
耦合
抽象
内聚
[参考答案]
分解
抽象
三 判断题
1.为了提高设计方案的内聚度,就要保证设计单一职责(SRP)的类。
[参考答案] 正确
2.模块化要遵循的原则是低内聚、高耦合。
[参考答案] 错误
四 问答题
1.判断下面的代码为高耦合还是低耦合?如果是高耦合,如何降耦?
Public class Sales{
SalesMapper salesMapper;
public void endSales(){
salesMapper.save();
}
}
public class SalesMapper {
public void save(){//方法实现}
}
[试题解析] 详细解析见课本P255
[参考答案]
高耦合
设计接口 SalesMapperService
让SalesMapper类实现接口;
让Sales类依赖接口。
该设计改进应用了针对接口编程原则和DIP(依赖倒置)原则。
2.结构化设计中的耦合与内聚都有哪些情况?按由低到高的顺序写出。
[参考答案]
耦合(低到高):数据、印记、控制、重复、公共、内容;
内聚(低到高):偶然、逻辑、时间、过程、通信、功能、信息。