我似乎无法理解“松耦合”的概念。我想“松散”这个词通常带有负面的含义,所以我总是会忘记松耦合是一件好事情。 请有人展示一些“前”和“后”代码(或伪代码),以说明这个概念?
C#经常使用依赖注入(DI)来构建一个无损和可测试的平台。为此,需要一个接口和可能的DI或IoC容器来解决实例。在C++中,可以通过引用对象来使用DI。不存在像C#中静态容器的类/项目/程序集注册实例的功能,但是可以手动维护一个容器来解决特定的实例。是否在C++中使用DI?如果有,如何使用?与...
我们一直在使用松耦合和依赖注入来开发代码。 许多“服务”样式的类都有一个构造函数和一个实现接口的方法。每个单独的类在孤立状态下非常容易理解。 然而,由于耦合度较低,只看一个类并不能告诉你它周围的类或者它在更大的框架中的位置。 在Eclipse中跳转到协作者也不容易,因为你必须通过接口来进...
每当我看到 ASP.NET MVC 项目时,我总是看到松耦合架构。 在 Web 架构中,为什么我需要松耦合(如果我不进行单元测试)? 这样做的优点和缺点是什么? 解耦层/类的主要原因是什么? 如果我不想改变我的数据访问层(DAL),例如何时应该更改整个 DAL?因此,我可以将我的 DA...
最近我看到很多关于如何构建松耦合应用程序的博客文章。在创建松散耦合的应用程序时,你最常使用哪些模式?依赖注入?控制反转?
我很难看到松散耦合的实际好处。为什么要花那么多精力使某些东西灵活地与其他对象一起工作呢?如果您知道需要实现什么,为什么不专门编写针对该目的的代码? 对我来说,这类似于创建未经分类的变量:它非常灵活,但由于可能传递了意外的值,它会自己开启问题。而且,这使得阅读更加困难,因为您无法明确知道正在...
例如,假设我想从某个地方获取文件列表,然后加载这些文件的内容,最后将它们显示给用户。在同步模型中,代码会类似于以下伪代码:var file_list = fetchFiles(source); if (!file_list) { display('failed to fetch li...
考虑以下代码:public class MyClass() { public MyClass() { } public DoSomething() { using (var service = new CustomerCreditServiceClient...
最近我一直在研究关于SOA和ESB等方面的内容。 现在,我正在重新设计一些遗留系统,并希望将其构建为更具有SOA架构而不是当前的架构。我们在约5个网站中使用这些服务,我们目前遗留系统最大的问题之一就是几乎每次进行错误修复或更新时都需要重新部署我们的5个网站,这可能是一个耗时的过程。 我的目...