咖啡馆

有空坐下来喝杯咖啡,放松下心情~
  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

命名空间的规划

Posted on 2013-09-19 23:00  mshwu  阅读(360)  评论(0编辑  收藏  举报

一个优秀的程序设计应该是组织层次分明,模块职职分明的,开始写第一行代码前,应该规划命名空间,它所体现的是你个人意志中对代码资源的规划。

 

可参考来自Design Guideline的建议如下:

<Company>.(<Product>|<Technology>)[.<feature>][.<Subnamespace>]

example : Microsoft.WindowsMobile.Directx

 

 

对于一个大型的软件企业,以友邦保险为例,一级命名空间可以如下:

Com.Aia.Application

Com.Aia.Foundation

Com.Aia.Framework

Com.Aia.Utility

Com.Aia.Training

 

  • Application  代表项目或产品
  • Foundation 代表公共库,类似于Enterprise Library之类的公共基础库,纯粹的Class Library, 没有UI元素
  • Framework 组织通用框架,类似于Spring,基于Foundation之上,面向某个开发领域扩充的Class Library和控件,本身不能独立运行,但可以完全集成到具体的产品或项目中。
  • Utility 企业内部各种工具,比如日志分析工具
  • Training 完全面向培训用途,对以上各块的使用实例

 

总体布局如下所示:

image

 

比如对于支持各个Framework 的公共Foundation, 可以放入以下子命名空间内:

Com.Aia.Foundation.Core.xxxxx