本文共 430 字,大约阅读时间需要 1 分钟。
理解包和模块我们可以从两个层面上来进行理解,一个实现层面上的,另外一个是概念层次上的。拿java.util来说,我们既可以在概念上认为它是一个包,因为它表征了一些实用类的集合,我们也可以在实现层面上认为它是一个模块,因为java.util.jar可作为一个独立的单元进行部署。很显然,我们不可能同时在两个层面上来区分包和模块,我们在区分这两个概念的时候只能忠实于一个层次,这篇文章只在概念层次上对这两个概念进行区分。
我们通常把认为是一个软件实体的集合,而这个集合是有现实的意义的,也就是说它具有概念完整性。而模块和包是不一样的,虽然我们也可以认为它是某些软件实体(如类、数据等)的集合,但是它的概念不在于分类和组织,而在于提供一个聚集的功能的集合。我们可以认为一个接口术语一个包,但是我们不能认为一个接口术语一个模块,因为接口就其本质上来说是模块之间的契约,因而是独立于模块的。虽然在实现上,我们常常把接口当作了接口了一个部分,但从概念上来说,他们是独立的。转载地址:http://qthpi.baihongyu.com/