“保持高凝聚力和低耦合度”(或某些变体)的口号经常被丢弃。但是,我发现它经常与“不要重复自己”相冲突。例如,我认为我们都可以同意重新实现std::string
或使用C字符串,但不包括std::string
创建另一个依赖关系并因此增加耦合是一件坏事吗?保持低速同时坚持干燥
再例如,采取std::stringstream
。它继承自iostream
,其继承自istream
和ostream
,其继承自ios
,其继承自ios_base
。在所有这些推导中,它继承了功能的,足以使手工重新实现一个非常糟糕的主意。它也拉动<ios>
和<istream>
标题,即使只包含<sstream>
,从而增加了耦合。
如何在不重新为每个模块重新开发车轮的情况下保持低耦合?
编辑:如果两个概念不能共存,哪一个应该受青睐?
一个特定的实例可能会导致更好的答案,并减少理论。 – tenfour
有人可以解释近距离投票吗?这个问题非常清楚。 – Maxpm
它符合__not constructive__描述:“这个问题不适合我们的问答格式,我们希望答案通常涉及事实,参考资料或具体的专业知识;这个问题可能会征求意见,辩论,争论,投票或延长讨论“。 –