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