Effective C# 原则32:选择小而内聚的程序集
2009-02-19 08:16:04 来源:WEB开发网在某些情况下,一个程序集就是类的二进制表现形式,我们用类来封装算法和存储数据。只有公共的接口才能成为“官方”的合约,也就是只有公共接口才能被用户访问。同样,程序集为相关类提供二进制的包,在这个程序集以外,只有公共和受保护的类是可见的。工具类可以是程序集的内部类。确实,它们对于私有的嵌套类来说它们应该具有更更宽的访问范围,但你有一个机制可以共享程序集内部通用的实现,而不用暴露这个实现给所有的用户。那就是封装相关类,然后从程序集中分离成多个程序。
其实,使用多程序集可以让很多不同布署选项变得很简单。考虑一个三层应用程序,一部份程序以智能客户端的形式在运行,而另一部份则是在服务器上运行。你在客户端上提供了一些验证原则,用于确保用户反馈的数据输入和修改是正确的。而在服务器上你又要重复这些原则,而且复合一些验证以保证验证更严格。而这些在服务器端的业务原则应该是一个完整的集合,而在每个客户端上只是一个子集。
确实,你也可以通过重用源文件来为客户端和服务器的业务原则创建不同的程序集,但这对你的布署机制来说会成为一个复杂的问题。当你更新这些业务原则时,你就有两个安装要完成。相反,你可以从严格的服务器端验证中分离一部分验证,封装成不同的程序集放置到客户端。这样,你就重用封装成程序集的二进制对象。这比起重用代码或者资源,重新编译成多个程序集要好得多。
做为一个程序,应该是一个包含相关功能的组织结构库。这已经是大家熟悉的了,但在实际操作中却很难实现。实际上,对于一个分布式应用程序,你可能不能提前知道哪些类应该同时分布到服务器和客户端上。即使可能,服务端和客户端的功能也有可能是流动的;你将来很有可能要面临两边都要处理的地步。通过尽可能能的让程序集小,你就有可能更简单的重新布署服务器和客户端。程序集是应用程序的二进制块,对于一个工作的应用程序来说,很容易添加一个新的组件插件。如果你不小心出了什么错误,创建过多的程序集要比个别很太的程序要容易处理得多。
- ››选择好的广告联盟:选择广告联盟理解掌握的六大绝招...
- ››选择谁? 揭秘90后必备的音乐播放器
- ››选择性关闭Win 7视频预览 节约系统资源
- ››选择适合的SRAM存储器的技巧
- ››Effective C# 原则40:根据需求选择集合
- ››Effective C# 原则41:选择DataSet而不是自定义的...
- ››Effective C# 原则42:使用特性进行简单的反射
- ››Effective C# 原则43:请勿滥用反射
- ››Effective C# 原则44:创建应用程序特定的异常类
- ››Effective C# 第6章:杂项
- ››Effective C# 原则45:选择强异常来保护程序
- ››Effective C# 原则47:选择安全的代码
更多精彩
赞助商链接