Effective C# 学习笔记(五十)构建小型内聚程序集
2011-09-12 23:17
211 查看
一个好的程序集应是大小合适且包含足够(不多不少)的公有类型。
高内聚的程序集的优点
高内聚可以使程序集的职责更清晰,更易于维护。如System.Core、System.Windows.Forms及Web Forms的划分就是针对不同的功能来划分的,之间没有交叉。
不要在程序集中只设置一个公有类型,每个程序集的大小的规划原则是每个程序集只有一个功能职责。如果你分得过细,就会创建过多的程序集,就会缺失了封装的好处。
将应用程序分别放到不同的程序集中,每个程序集中只包含相关的类型。如:分层构建程序也是一个划分程序集的好处,你可以在客户端构建SmartClient为用户提供UI接入,而在服务端进行服务的维护,各层各付其职。而验证逻辑也可以独立出来,供各层引用,程序的验证逻辑更新时只需更新该验证逻辑程序集即可。这也是Enterprise Library的思想。其将验证、日志、异常处理、依赖注入等功能分别构建在不同的application block中,自己组合,灵活多变且易于维护和扩展。
程序集之间的通信也要花费更多的资源。
跨程序集之间的调用需要注意授信权限的不同
构建程序集的考虑要点
将处理一个功能集的公有类型及其基类和接口放到一个程序中
将各个公有类型共用的Utility类作为internal放到该程序集中
将各个程序集公用的Utility单独构建程序集(如:logging、Exception Handling)
高内聚的程序集的优点
高内聚可以使程序集的职责更清晰,更易于维护。如System.Core、System.Windows.Forms及Web Forms的划分就是针对不同的功能来划分的,之间没有交叉。
不要在程序集中只设置一个公有类型,每个程序集的大小的规划原则是每个程序集只有一个功能职责。如果你分得过细,就会创建过多的程序集,就会缺失了封装的好处。
将应用程序分别放到不同的程序集中,每个程序集中只包含相关的类型。如:分层构建程序也是一个划分程序集的好处,你可以在客户端构建SmartClient为用户提供UI接入,而在服务端进行服务的维护,各层各付其职。而验证逻辑也可以独立出来,供各层引用,程序的验证逻辑更新时只需更新该验证逻辑程序集即可。这也是Enterprise Library的思想。其将验证、日志、异常处理、依赖注入等功能分别构建在不同的application block中,自己组合,灵活多变且易于维护和扩展。
程序集之间的通信也要花费更多的资源。
跨程序集之间的调用需要注意授信权限的不同
构建程序集的考虑要点
将处理一个功能集的公有类型及其基类和接口放到一个程序中
将各个公有类型共用的Utility类作为internal放到该程序集中
将各个程序集公用的Utility单独构建程序集(如:logging、Exception Handling)
相关文章推荐
- 利用rpcgen构建分布式程序的8个步骤---学习笔记
- SuperSocket框架学习笔记3-构建Unity3D__WebSocket4Net客户端程序
- Spring boot 学习笔记 ---分分钟构建一个web程序(一)
- 【ExtJs学习笔记】3.构建程序
- 基于node的websocket学习笔记三:scoket.io基础与利用scoket.io构建聊天程序示例
- div+css构建自己的学习笔记网页前台一(头部)
- 【C++学习笔记】03_C++程序结构
- java入门程序100例学习笔记(004个人所得税)
- Struts2学习笔记一 简介及入门程序
- UNIX环境编程学习笔记---------编程实例----自己写的CS程序
- ZF 学习笔记:第一个程序
- 微信小程序学习笔记(十六)textarea
- ASPX.NET学习笔记---- 第一个ASPX.NET程序
- j2me学习笔记【1】——helloworld程序示例
- JavaScript高级程序设计学习笔记--事件(一)(事件流、事件处理程序/事件侦听器)
- 学习笔记(一)之示例程序:计算每年的最高温度MaxTemperature
- DirectShow 学习笔记< 一> -- 第一个程序
- (一)ios学习笔记--程序整体语法结…
- 第二行代码学习笔记——第七章:跨程序共享数据——探究内容提供器
- 队列学习笔记 银行排号程序