打个比方,我们要建造一间房子,有很多的建筑方法。比如你可以用沙硕建造,或者把沙硕烧制成砖块建造;甚至直接从工厂购买定制房屋建造。这三种方法代表了不同的组合尺度,沙硕的单位最小,在沙硕基础上烧制的砖块要大一些,而定制的房屋则是最高的尺寸,使用它可以最快速的搭建我们的房子。
上面的比方与我们编程的概念有很大的相同之处。面向过程编程语言的基本单元是结构体和方法,它们实现了基本的代码复用。在我们需要固定的功能的时候,直接调用已经存在的方法或者结构体的好处是显而易见的。原来我们使用的软件大都是小巧玲珑,使用过程编程语言十分合适,但是在现在越来越庞大的项目中,弊端就显示出来了。方法和结构体的单元颗粒太低,不便于管理。如果项目有1000个方法,如果新来一个程序员,就需要大量的时间去搞明白所有代码的功用,否则根本不敢随便改动。即便是熟悉的程序员进行维护也需要大量的时间,管理难度大大增加!试想一家1000名员工的公司却没有任何部门和职务,怎么管理?