看到这些DLL没,为什么不放到同一个项目里,而要分开这么多个项目生成这么多的DLL。
平时的作法是对相同的命名空间放到同一个项目里,
如上图, V5Shop.Shop.X 完全可以放到 V5Shop.Shop这个项目中建立不同的文件夹来存放。
为什么 V5Shop 没有这么作?
面向对象提倡的就是高内聚,松耦合,对象之间的关系分的越清越好,说两点吧:
1、复用性增加
比如,V5Shop.Payment.dll用在这个项目中,如果现在有个V6Shop项目。那么这个dll就有可能可以直接引用过去,就可以用起来,不需要再做代码了。
2、健壮性增强
比如,现在你要部署整个项目,对项目支付做了改动,对Shop部分并没修改,如果粘在一起,势必影响的内容就多,分开来,只需要把payment.dll覆盖即可,只更新改动的部分,不会影响到shop部分。这对经常更新的网站来说有好处。
分离关注点,项目的并行开发。大家都是靠接口来通信。