Effective C# 原则32:选择小而内聚的程序集
2009-02-19 08:16:04 来源:WEB开发网那么,你决定一个程序集中放多少代码或者多少类呢?更重要的是,你是如何决定哪些代码应该在一个程序集中?这很大程度上取决于实际的应用程序,因此这并没有一个确论。我这里有一个推荐:通过观察所有的公共类开始,用一个公共基类合并这些类到一个程序集中。然后添加一些工具类到这个程序集中,这些工具类主要是负责提供所有相关类的功能。把相关的公共接口封装到一个独立的程序集中。最后一步,查看那些在应用程序中横向访问的对象,这些是有可能成为广泛使用的工具程序集的候选对象,它们可能会包含在应用程序的工具库中。
最后的结果就是,你的组件只在一个简单的相关集合中,这个集合中只有一些必须的公共类,以及一些工具类来支持它们。这样,你就创建了一个足够小的程序集,而且很容易从更新和重用中得到好处,同时也在最小化多个程序集相关的开销。一个设计好的内聚组件可以用一句话来概括。例如,“Common.Storage.dll 用管理所有离线用户数据缓存以及用户设置。”就描述了一低内聚的组件。相反,做两个组件:“Common.Data.dll 管理离线数据缓存。Common.Settings.dll 管理用户设置。” 当你把它们分开后,你可能还要使用一个第三方组件:“Common.EncryptedStorage.dll 为本地加密存储管理文件系统IO” ,这样你就可以独立的更新这三个组件了。
小,是一个相对的条件。Mscorlib.dll就大概有2MB,System.Web. RegularExpressions.dll却只有56KB。但它们都满足小的核心设计目标,重用程序集:它们都包含相关类和接口的集合。绝对大小的不同应该根据功能的不同来决定:mscorlib.dll包含了所有应用程序中要使用的最底层的类。而System.Web.RegularExpressions.dll却很特殊,它只包含一些在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:选择安全的代码
更多精彩
赞助商链接