是否应将所有对象分离

use*_*050 4 c# dependency-injection decoupling

我有一个问题似乎无法在任何地方得到解答.这是关于将代码与接口分离的问题.问题是 - 是否应将其他对象(正在创建和使用)中的所有对象重构为接口以遵循SOLID的依赖性反转原则?那么在偶数驱动方法中新建对象怎么样?我按下按钮时调用的方法.是否应该传递对象,比如说构造函数?当然这一切都适用于我的对象,而不是BCL吗?

Ron*_*ell 5

millimoose给出了一个很好的答案.它特别好,因为它是任何编程问题的正确答案:)

我想详细说明一下.处理此类情况时,以下条件成立:

  1. 解耦需要自己承担费用.
  2. 没有代码是完美的,因为你可能不会得到你想要的所有时间.
  3. 如果你的代码比它可能更加耦合,那么这不是世界末日.

因此,不要以一个全有或全无的命题来看待它,而是将其视为一个分数.你愿意忍受多少联结?您愿意为脱钩支付多少钱?在某些时候,设计时间和感知可维护性之间存在平衡 - 请记住,您甚至不知道代码将如何改变.

您是否听说过"基于事件的编程:将事件发挥到极限"这本书?这一切都与耦合有关:http: //books.google.com/books?id = 9CL446IzhuAC&pg = PR21&dq = tol + times + to + the + limit&hl = zh-CN&X&ei = bcfLUMzRMcWLqgHi-oHoBw&ed = 0CDUQ6wEwAA

作者声称你无法消除所有耦合,但你可以对其进行转换,并且耦合应该转移到更简单的类.也许您可以将其作为您工作的指南.