以下哪一行代码耦合发生? 什么是耦合?这种耦合引起的问题是什么?如何重构代码以减少耦合?
答案 0 :(得分:0)
解决这个问题的一种方法是查看函数/方法所依赖的所有内容。
它明确依赖于它的参数 - 在这种情况下是一种控制耦合形式。
但是,如果我们尝试单独编译此方法,我们可以看到它所依赖的所有其他对象:
Log
,以及Log的一些特定方法(请注意,我们似乎总是调用这两种方法)IGNORE_USER_REQUESTS
LOG_VERBOSITY_LEVEL
,在此方法中重复4次mem
和4个属性(size,startAddress等) - 可能是一种内容耦合形式我认为你可以说有几种共同耦合(共享全局变量)的情况,尽管从有限的背景来看并不是非常清楚。变量可以在对象或包中范围内,而不是真正的“全局”。
然后考虑:
mem
的结构发生了变化?请注意,如果不了解更广泛的代码,我们无法正确评估此耦合的影响;例如,如果这些对象封装在一个小类中,则影响小于这些对象分散在整个代码中的情况。类似地,尝试重构这些代码有点棘手,因为我们只能猜测我们可能在我们的假设代码中的其他地方影响什么,以及我们可以自由重构哪些对象(例如,某些对象可能来自第三方库)