话说面向对象开发有三大原则,单一职责原则,开放-封闭原则,依赖倒转原则。
什么是单一职责原则,对一个类来说,或者对一个函数来说,应该仅有一个能引起它变化的原因。
也就是说,每个函数只做一件事情。 在我的理解里,用面向函数式开发的思路来说,就是一个函数不能改变全局变量,而只是运算,返回结果。
什么是开发-封闭原则, 就是函数的扩展是开发的,对函数的修改是封闭的。
需求一定会变化,但我们不能预测其变化。所以等到变化一发生我们就采取行动。对那个变化进行抽象。举个例子,本来是叫你写个加法程序,你写了个类实现加法功能。后来要你加个减法功能,你重构这个类,增加一个抽象的运算类,加法类继承运算类,减法类也继承运算类。以后相似的除法,乘法都继承这个类,而不用修改原先的类。
什么叫依赖倒转原则, 就是高阶函数不依赖低阶函数,高阶函数和低阶函数都依赖于中间的接口,也就是抽象。就像内存坏了,换根内存就行,只要保证内存的那个插口和主板插槽一致。主板坏了,换个主板就行,只要保证主板的插槽和内存的插口一致就行。