2.6 组件设计实现:单类设计和实现

怎样的组件,才是一个优秀的组件?从组件使用者的角度,组件要简单,易于使用,并且功能强大。那么组件怎样才能简单,易于使用?

首先,前面讲过,组件提供出来的接口,要与使用者的概念完全一致,这样使用者就非常容易理解组件的各个类、接口、方法和参数,这样就会易于使用。

但组件本身怎么才能简单呢?

最简单的组件,就是一个类。

一个类,就会比两个类简单,两个类就会比四个类简单。这个道理显而易见,其核心精髓是面向对象的基本设计原则:高内聚、低耦合。要严格控制类的数量,逻辑相关度很高的,就不允许拆成多个类。不支持将来变化的部分,就不提供接口。

组件,作为可重用的软件,不会承载太多的功能,组件的规模不会很大。因此,最理想的情况,组件就是单独的一个类。组件使用者用起来,将会是极致的简单。

我们从网上下载开源的项目,打开源代码一看,豁!好家伙,一大堆的类和接口,不写几十个、几百个类好像就显不出作者的水平。其实真有必要写那么多的类吗?

高内聚!高内聚!单类组件,简单到极致!