<分区>
我有一个问题似乎在任何地方都找不到答案。这是关于将您的代码与接口(interface)分离。问题是——是否应该将其他对象(正在创建和使用)内的所有对象重构为一个接口(interface)以遵循 S.O.L.I.D. 的依赖倒置原则?在偶数驱动方法中更新对象怎么样?,例如。当我按下按钮时调用的方法。应该通过构造函数传入对象吗?当然,这一切都适用于我的对象而不是 BCL,对吗?
<分区>
我有一个问题似乎在任何地方都找不到答案。这是关于将您的代码与接口(interface)分离。问题是——是否应该将其他对象(正在创建和使用)内的所有对象重构为一个接口(interface)以遵循 S.O.L.I.D. 的依赖倒置原则?在偶数驱动方法中更新对象怎么样?,例如。当我按下按钮时调用的方法。应该通过构造函数传入对象吗?当然,这一切都适用于我的对象而不是 BCL,对吗?
最佳答案
millimoose 给出了很好的答案。它特别好,因为它是任何编程问题的正确答案:)
我想详细说明一下。在处理这样的场景时,以下条件成立:
因此,不要以全有或全无的命题来看待它,而应该像分数一样看待它。您愿意忍受多少耦合?你愿意为脱钩支付多少钱?在某些时候,设计时间和可维护性之间存在平衡——请记住,您甚至不知道您的代码将如何更改。
您听说过“基于事件的编程:将事件发挥到极致”这本书吗?一切都与耦合有关: http://books.google.com/books?id=9CL446IzhuAC&pg=PR21&dq=taking+events+to+the+limit&hl=en&sa=X&ei=bcfLUMzRMcWLqgHi-oHoBw&ved=0CDUQ6wEwAA
作者声称你不能消除所有耦合,但你可以转换它,耦合应该转移到更简单的类上。或许您可以将其作为您努力的指南。
关于c# - 是否应将所有对象解耦,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13888178/
相关文章:
c# - 使用委托(delegate)而不是接口(interface)来解耦。好主意?
c# - 与 ConfigurationManager 耦合或将参数从一个传递到另一个
dependency-injection - 依赖注入(inject)框架 : Why do I care?
c# - LINQ 和 EF 与 string.StartsWith(char c)
c# - MS DI + MediatR : PipelineBehavior for a base IRequest with a generic response
dependency-injection - UWP 模板 10 和服务依赖注入(inject) (MVVM) 不是 WPF