我有一个大型的.NET网页应用程序。该系统具有不同意图的项目(例如CMS,论坛,电子商务),我注意到了在另一个项目中调用类的(天真的)模式。例如,电子商务模块需要在产品上动态生成文件的功能,我调用并引用CMS中的方法来完成这个任务,因为文件处理确实是CMS的工作。
显然(我知道原因),这是糟糕的设计和高耦合的情况。
我知道几种处理高耦合的方法,比如重构项目(尽管我认为这不是一个稳健的解决方案),但除此之外,我还能做什么来减少高耦合?有什么简单的技巧吗?此外,了解它们为什么/如何减少耦合也很好。我使用的是.NET 3.5和Sql Server 2005,因此像JMS这样的东西(我在寻找有关这个设计问题提示的搜索中不断遇到)不适用。
谢谢
顺便说一下,
我提出这个问题的原因之一是我已经阅读了与此类似的先前问题,但通常如果再次提出以前提出过的问题,不同的人回复帖子可能会学到不同的技巧。
我知道依赖注入/IOC,但我对可以减少耦合的小技巧感兴趣。
在决定如何减少耦合时,我该如何选择使用静态类、接口派生类还是IOC方法?此外,我可以开发一个Web服务,它可以调用一个静态类-混合使用我的解决方案中的方法。
有趣的是,在我的应用程序中,我不希望它是不连贯的。因此,我只有一个论坛,电子商务系统和任何其他所需的模块,但每个模块(在我的Visual Studio解决方案中表示为专用项目)都需要了解并与其他模块一起工作。因此,例如,我可能会有一个处理用户配置文件的模块(与ASP.NET成员资格,角色等一起工作),但这将与论坛模块一起工作,因为论坛上的用户将是站点上注册用户(整个过程中只需要一次登录),他或她的配置文件将来自用户配置文件模块。这与我在其他网站上看到的单独配置文件不同)。
显然(我知道原因),这是糟糕的设计和高耦合的情况。
我知道几种处理高耦合的方法,比如重构项目(尽管我认为这不是一个稳健的解决方案),但除此之外,我还能做什么来减少高耦合?有什么简单的技巧吗?此外,了解它们为什么/如何减少耦合也很好。我使用的是.NET 3.5和Sql Server 2005,因此像JMS这样的东西(我在寻找有关这个设计问题提示的搜索中不断遇到)不适用。
谢谢
顺便说一下,
我提出这个问题的原因之一是我已经阅读了与此类似的先前问题,但通常如果再次提出以前提出过的问题,不同的人回复帖子可能会学到不同的技巧。
我知道依赖注入/IOC,但我对可以减少耦合的小技巧感兴趣。
在决定如何减少耦合时,我该如何选择使用静态类、接口派生类还是IOC方法?此外,我可以开发一个Web服务,它可以调用一个静态类-混合使用我的解决方案中的方法。
有趣的是,在我的应用程序中,我不希望它是不连贯的。因此,我只有一个论坛,电子商务系统和任何其他所需的模块,但每个模块(在我的Visual Studio解决方案中表示为专用项目)都需要了解并与其他模块一起工作。因此,例如,我可能会有一个处理用户配置文件的模块(与ASP.NET成员资格,角色等一起工作),但这将与论坛模块一起工作,因为论坛上的用户将是站点上注册用户(整个过程中只需要一次登录),他或她的配置文件将来自用户配置文件模块。这与我在其他网站上看到的单独配置文件不同)。