首先一个非常简单的多线程程序,基本上类似如下情况:
在这种情况下,对线程的管理完全放在Main函数当中,当程序体变得复杂和庞大的时候,管理起来异常困难。在面向对象的编程中,每个需求和模块被细化成对象和类。就比如一个公司,里面有IT部门,有HR部门。当我在管理公司的时候,我并不是在我的入口函数当中,寻找某个人来做某个事情,而应该是寻找某个部门,责成某个部门去做某件事情。而具体的如何去做,是由这个部门里面的人实现。在老板或者总经理的级别,我根本不需要去考虑他们的细节。
同样的,在这里,我们应该把这些实现的细节,把做事的这些人,封装到某个部门的类当中去。
例如以下代码: