开篇 - Clean Architecture Part 1

面向对象编程的重要性

多态(polymorphism)

最初开始于计算机IO设备的插件构建,对于计算机来说一个输入设备只是一个插件,只要这个输入设备提供了标准的接口,我们就可以随意更换。

面向对象编程使得插件构架可以在任何地方使用。这就是我们常说的面向接口(Interface)编程。

依赖倒置(Dependency Inversion)

这里的依赖具体指的是源代码的依赖关系。
举个例子:一个有界面的应用程序,主程序会直接去创建GUI,并且将用户输入的信息存入数据库。 在这种情况下,主程序直接控制GUI和数据库, 并且其代码会直接依赖于GUI和数据库的代码。

1
GUI <- 主程序 -> 数据库

然而在应用接口的情况下,我们可以在主程序中加入GUI的接口,数据库的接口。主程序的代码将直接调用接口的方法,而不去关心具体的实现的类。同时,我们的GUI和数据库将会依赖于主程序代码中的接口,并将其实现。

1
GUI -> (GUI接口)主程序(数据库接口) <- 数据库

这就是一个典型的依赖倒置。