封装继承多态是面向对象程序开发的基础概念。是实现面向对象的基本要素。编程
程序开发,最核心价值,是数据。
程序实际上是读取数据,操做数据,保存数据等一系列操做。
那么通过良好组织过的数据,将使编程事半功倍。优化
说到数据,常常挂在嘴边的,就是这句高内聚,低耦合了。
这并非绝对规则。高和低是程度副词。咱们要尽可能高内聚,尽可能低耦合。
对于初学者,这一句话,可能就懵了。不一样的人,有不一样的评价标准。那么什么样算是高,什么样算是低呢?code
避免公开的全局变量。若是一个数据开放程度过大。就难保不会有人想要偷懒,直接读取/设置。
当管理这个数据的人过多,那么想要对这个数据进行升级、优化,会大几率致使其余模块被迫修改。
不符合面向对象开发的价值观。对象
若是一个程序里面,有多个地方保存了同一个数据,例如当前是否是白天“isDay1”,"isDay2"。
那么当有开发新的功能时,有的人用了变量1,有的人用了变量2。很容易出现数据不一致的状况。
必定要逼着再开发第三个程序段,用于保证isDay1和isDay2保持同步?那岂不是本身给本身添堵!
因此,一样的数据,不要在多个地方进行管理。继承
在程序开发中,常常还会出现一种状况。那就是能够经过计算出来的数据,还要再拿一个变量进行保存。开发
class DayNightControl { bool isDay; // 当前是不是白天 bool isNight; // 当前是不是黑夜(这个数据就是重复) }
当前是不是晚上,能够经过!isDay得到,那么就不要再重复记录isNight。这是一个一眼就能看出问题的例子。
还有不少隐藏的状况。同步
例如:某个控件是否显示。显示条件可能由A,B,C三个条件控制。本能够经过A&&B&&C进行计算得出。此时额外增长一个visible变量,就会给后续的程序维护形成麻烦。class