WEB开发网
开发学院软件开发C语言 Effective C# 原则32:选择小而内聚的程序集 阅读

Effective C# 原则32:选择小而内聚的程序集

 2009-02-19 08:16:04 来源:WEB开发网   
核心提示: 那么,你决定一个程序集中放多少代码或者多少类呢?更重要的是,Effective C# 原则32:选择小而内聚的程序集(4),你是如何决定哪些代码应该在一个程序集中?这很大程度上取决于实际的应用程序,因此这并没有一个确论,不论哪种情况,应该它们尽可能合理的小,我这里有一个推荐:通过观察所有的

那么,你决定一个程序集中放多少代码或者多少类呢?更重要的是,你是如何决定哪些代码应该在一个程序集中?这很大程度上取决于实际的应用程序,因此这并没有一个确论。我这里有一个推荐:通过观察所有的公共类开始,用一个公共基类合并这些类到一个程序集中。然后添加一些工具类到这个程序集中,这些工具类主要是负责提供所有相关类的功能。把相关的公共接口封装到一个独立的程序集中。最后一步,查看那些在应用程序中横向访问的对象,这些是有可能成为广泛使用的工具程序集的候选对象,它们可能会包含在应用程序的工具库中。

最后的结果就是,你的组件只在一个简单的相关集合中,这个集合中只有一些必须的公共类,以及一些工具类来支持它们。这样,你就创建了一个足够小的程序集,而且很容易从更新和重用中得到好处,同时也在最小化多个程序集相关的开销。一个设计好的内聚组件可以用一句话来概括。例如,“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控件中要使用的正则表达式类。这就创建了两种不同类型的组件:一个就是小,而大的程序集则是集中在特殊的功能上,广泛应用的程序集包含通用的功能。不论哪种情况,应该它们尽可能合理的小,直到不能再小。

上一页  1 2 3 4 

Tags:Effective 原则 选择

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接