当我查看ASP.NETMVC项目时,我每次都看到松散耦合的体系 struct .

在web架构中,我需要松耦合做什么(如果我不进行单元测试)?

advantagesdisadvantages是什么?

解耦层/类的main reason个选项是什么?

例如,如果我不想更改DAL,该怎么办?我是说我什么时候才能换掉我的整个DAL?!这样我就可以把我的DAL和UI结合起来.这有什么不好?

推荐答案

它将为任何不是非常小的项目节省大量时间,我将非常小的项目定义为少于几千行代码(取决于语言).

原因是,一旦你通过了超小型项目,每一个变更或更新都会变得越困难,因为它们之间的耦合越紧密.松散耦合使您能够继续前进,添加功能,修复bug等.

在某种程度上,我认为任何程序都会变成一场噩梦,需要维护、更新和添加.设计的耦合越松散,该点的延迟就越大.如果它是紧密耦合的,可能在大约10000行代码之后,它就变得不可维护了,如果不从头开始重写,添加一些特性就不可能了.

松散耦合允许它增长到1000000-10000000行代码,同时仍然能够在合理的时间内进行更改和添加新功能.

这些数字并不是字面意义上的,因为它们只是虚构的,而是为了让人感觉到它在哪里有用.

如果您永远不需要更新程序,并且它相当简单,那么可以肯定的是,紧密耦合是很好的.这样开始甚至是可以的,但是知道什么时候可以把东西分离出来,但是您仍然需要有编写松耦合代码的经验,才能知道在什么情况下它会变得有用.

Enterprise Fizzbuzz是一个故意幽默的例子,它说明了过度工程是如何可能走得太远的,而且并不是每个项目都需要相同级别的解耦.

MVC通常被认为是一个很好的起点,因为大多数项目都会变得足够大,从而对它有所帮助.当项目变得更大时,这种级别的解耦是不够的,需要将M部分本身拆分成几个层,依此类推.没有一刀切的解决方案,但是MVC对于大多数项目来说是一种很好的解耦方式.

Asp.net相关问答推荐

如何从 Azure 上托管的应用服务获取登录用户名?

我可以将图像添加到 ASP.NET 按钮吗?

指定的 CGI 应用程序遇到错误,服务器终止了进程

asp.net:与其中的用户控件相比,控件/页面的页面生命周期顺序是什么?

如何缓存数据库表以防止在 Asp.net C# mvc 中出现许多数据库查询

ASP.NET MVC4 jquery/javascript 包的使用

防止 asp.net Web 表单中的跨站点请求伪造 (csrf) 攻击

IIS 7.5 上没有 asp.net 功能

最佳服务器端 .NET PDF 编辑库

MVC5 身份验证中的......与主域之间的信任关系失败

通过 ASP.NET/C# 使用 Plupload

不同域的登录页面

带有模型的 ASP.NET MVC 重定向

Azure 网站 301 重定向 - 我应该把它放在哪里?

如何遍历自定义 vb.net 对象的每个属性?

如何response.write bytearray?

GZIP 与 DEFLATE 压缩相比有什么优势?

如何从 ASP.NET Identity 获取用户列表?

获取 POST 变量

Sys.WebForms.PageRequestManagerServerErrorException:处理服务器上的请求时发生未知错误.