
【计】 control coupling
control; dominate; desist; grasp; hold; manage; master; predominate; rein
rule
【计】 C; control; controls; dominance; gated; gating; governing
【医】 control; dirigation; encraty
【经】 check; command; control; controlling; cost control; dominantion
monitoring; regulate; rig
coupling
【计】 coupling
在软件工程领域,"控制耦合"(Control Coupling)是指模块之间通过传递控制信息(如标志、开关、命令或消息)来直接影响对方执行逻辑或流程的一种依赖关系。其核心在于一个模块显式地控制另一个模块的内部决策或执行路径。
汉英对照定义
mode=1
,模块B依据 mode
值选择不同处理分支。耦合强度分析
控制耦合属于中等强度耦合(低于内容耦合,但高于数据耦合)。其风险在于:
函数调用控制
def process_data(data, operation_type):# operation_type 为控制参数
if operation_type == "ENCRYPT":
return encrypt(data)
elif operation_type == "COMPRESS":
return compress(data)
此处调用方通过 operation_type
控制 process_data
的执行分支,形成控制耦合。
系统状态传递
模块A检测到错误后,向模块B传递 error_flag=True
,触发模块B的异常处理流程。这种设计将错误处理逻辑强绑定于控制信号(来源:Sommerville, I.《软件工程》第10版)。
重构为数据耦合
将控制逻辑内聚到单一模块,例如用策略模式封装不同操作:
interface DataProcessor { void process(Data data); }
class Encryptor implements DataProcessor { ... }
class Compressor implements DataProcessor { ... }
调用方只需传递数据对象,无需控制处理逻辑(耦合强度降低)。
事件驱动解耦
通过发布/订阅模型(如消息队列)传递事件而非控制指令。模块B订阅特定事件(如 DataReceivedEvent
),自主决定响应行为,消除显式控制依赖(来源:IEEE标准词汇表 SEVOCAB)。
控制耦合是软件工程中模块间耦合的一种形式,指一个模块通过传递控制信号(如标志、开关或逻辑判断参数)直接影响另一个模块的执行逻辑。其核心特征是模块间的交互涉及流程控制,而非单纯的数据传递。
控制信号传递
例如模块A调用模块B时传递参数isAdmin
,B根据该参数决定是否执行管理员权限操作()。
中等耦合强度
控制耦合的依赖性强于数据耦合(仅传递数据),但弱于内容耦合(直接修改对方内部数据)。
典型场景
函数通过布尔值、枚举值或状态码控制被调用方的分支逻辑,如根据mode=0/1
切换计算方式。
例如,若模块A调用模块B时传递sortType=ASC
控制排序方式,B内部实现不同排序算法,即为控制耦合的典型表现()。
不经肠的传出纤维窗单一意念端口控制部件设计厄默桑氏法反发收器放射性系法庭判定高蛋白近端串扰金嵌体脊柱前的可分的契约苦闷的令牌轮转时间卵睾体埋入温度探测器美拉鲁利胚胎频带分割葡萄糖砜钠氢化白屈菜酸日落散沫花属税金扣款松果体脚推拔套箱