【发布时间】:2011-10-07 14:17:58
【问题描述】:
假设我有一个名为 do3() 的函数 为了使该函数工作,我需要执行函数 do1() 和 do2()。
但是,do1() 和 do2() 也可能需要用于其他内容(可能用于 do4())
所有这些功能都是公共的(并且必须是公共的)。
问题,我应该如何实现代码?
选项 1:
function do3() {
do2()
do whatever is needed for do3
}
function do2() {
do1()
do whatever is needed for do2
}
function do1() {
do whatever is needed for do1
}
所以如果我调用do3(),我相信一切都会完成,尽管会出现耦合
选项 2
function do3() {
do whatever is needed for do3
}
function do2() {
do whatever is needed for do2
}
function do2() {
do whatever is needed for do1
}
所以当我想调用 do3() 时,我必须这样做
do1()
do2()
do3()
我觉得第二种选择更好,因为它的耦合更少,但是我无法解释为什么,它更像是一种感觉。我认为如果我使用选项一和一天我更改 do2() 我可能会遇到问题。
但是,对于选项 2,我必须确保每次我想使用 do3 时都调用 do1 和 do2。
如果有人有更好的想法(选项 3?)会很棒。
谢谢
【问题讨论】:
-
我想你可能会找到一本书 (view it online) “基于事件的编程:将事件发挥到极致” 不要只看书名——第一章给出了深刻的描述和减少/转移耦合到较小形式的耦合行为的方法。
标签: oop architecture software-design coupling