gpt4 book ai didi

c# - 减少耦合的简单技巧

转载 作者:太空狗 更新时间:2023-10-30 00:06:46 25 4
gpt4 key购买 nike

我有一个大型 .NET Web 应用程序。该系统有不同目的的项目(例如 CMS、论坛、电子商务),我注意到调用另一个项目类的(幼稚)模式。例如,电子商务模块需要为产品动态生成文件的功能,我调用并引用了 CMS 中的一个方法来执行此操作,因为文件处理确实是 CMS 的工作。

很明显(我知道为什么),这是糟糕的设计和高耦合的情况。

我知道一些处理高耦合的方法,比如重构项目(虽然我真的不认为这是一个可靠的解决方案),但我还能做些什么来降低高耦合?有什么简单的技巧吗?另外,最好知道它们为什么/如何减少耦合。我使用 .NET 3.5 和 Sql Server 2005,因此 JMS(我在搜索有关此设计问题的技巧时不断遇到)之类的东西不适用。

谢谢


顺便说一句,

我问这个的原因之一是我已经阅读了以前类似的问题,但通常如果再次提出以前提出过的问题,可以从不同的人回复帖子中学到不同的技巧。

我知道依赖注入(inject)/IOC,但我对可以用来减少耦合的小事情很感兴趣。

在决定如何减少耦合时,我如何在使用静态类、接口(interface)派生类或 IOC 方法之间做出选择?此外,我可以开发一个可以调用静态类的 Web 服务 - 在我的解决方案中混合使用这些方法。

有趣的是,在我的应用程序中,我不希望它脱节。所以我只有一个论坛、电子商务系统和任何其他所需的模块,但所有内容都必须整合到一个站点中,因此每个模块(在我的 Visual Studio 解决方案中表示为一个专用项目)需要了解所有其他模块和工作用它。因此,例如,我可能有一个处理用户配置文件的模块(使用 ASP.NET 成员资格、角色等),但这将与论坛模块一起工作,因为论坛上的用户将是网站上的注册用户(一个始终登录),他或她的个人资料将来自用户个人资料模块。这与我遇到的其他网站上看到的单独配置文件不同)。

最佳答案

您应该在其他项目需要的那些项目中公开 Web 服务。这是 SOA 背后的基本概念。所以,我只想创建 Web 服务并使用它们,这将使您与现在的服务方式脱钩。希望这会有所帮助。

关于c# - 减少耦合的简单技巧,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/311714/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com