记录大话设计的学习过程。
高层模块不依赖于低层模块,这两种模块都应该依赖于抽象。
抽象不依赖于细节,细节应该依赖抽象。
针对抽象编程而不是针对细节编程,即所有的依赖关系终止与抽象类或接口,这就是面向对象的设计,反之是面向过程话的设计了(函数是一种面向过程设计)。