c# - 什么是显示松耦合类和接口(interface)之间关系的好方法?

标签 c# .net solid-principles single-responsibility-principle modular-design

我已经向我的团队介绍了 SOLID 原则,他们理解并乐于使用这些原则。

S - SRP - Single Responsibility Principle
O - OCP - Open/Closed Principle
L - LSP - Liskov Substitution Principle
I - ISP - Interface Segregation Principle
D - DIP - Dependency Inversion Principle

我给了他们几个已经重构以使用这些原则的项目。我看到的最大问题是他们是否很难看到项目中非常松散耦合的类之间的联系。即使我创建了一个类图,它也不会显示任何连接。我提到的一个特定项目也使用依赖注入(inject)和 XML 配置来实现。同时,这样做的目的是让他们更难找出正在使用的类。

可视化显示类之间的关系以及它们在项目中的使用方式的最佳方式是什么?!

编辑:2008/10/24 晚上 8:40

根据 UML 评论,我试图转向内置的 Visual Studio 类图来构建应用程序模型。我可以对每个接口(interface)进行描述,但仍然不确定它们之间是否有明确的联系。

最佳答案

我倾向于只在涉及到关系时才考虑接口(interface),所以我无法真正帮助您提供具体类型的广泛概述/类图。正如有人已经指出的那样,如果您想在图表上显示具体类型,它只与一次特定运行的快照相关——每次对象图以不同方式连接时它都会改变。

我认为在图表中布置接口(interface)通常更有帮助,然后浏览代码库以查找实现。使代码浏览变得非常非常简单的一个技巧:

获取ReSharper plugin for Visual Studio并使用以下快捷方式(当您的插入符位于类/接口(interface)上时):

Alt + Home -- 转到基础/界面

Alt + End -- 转到派生/类型实现接口(interface)

这两个快捷方式对于浏览具有大量松散耦合的代码库来说绝对是必不可少的。

关于c# - 什么是显示松耦合类和接口(interface)之间关系的好方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1618144/

相关文章:

c# - 如何使 View 完全或部分渲染?

c# - 如何证明 .NET 类 Random 不适合生成密码?

.net - DoD CAC 身份验证 - .NET C#、Windows Server 2008 R2、IIS 7.5 的客户端证书问题

java - 构造函数的开闭原则

c# - 在 metro 应用程序中存储大量数据

c# - 如何动态指定 Linq OrderBy 参数?

c# - DropDownList 不接受我尝试分配的 SelectedIndex

c# - 将 Windows 窗体单元测试迁移到 WPF

tdd - 单一职责原则 (SRP) 是否允许实用程序类

oop - SharedFolder中违反里氏替换原则