【技术分享】面向对象开发系列之【封装】

封装

理解

封装是面向对象程序开发的基石。

程序开发,最核心价值,是数据。
程序其实是读取数据,操作数据,保存数据等一系列操作。
那么经过良好组织过的数据,将使编程事半功倍。

高内聚,低耦合

说到数据,经常挂在嘴边的,就是这句高内聚,低耦合了。
这并不是绝对规则。高和低是程度副词。我们要尽量高内聚,尽量低耦合。
对于初学者,这一句话,可能就懵了。不同的人,有不同的评价标准。那么什么样算是高,什么样算是低呢?

1. 一个数据只让一个对象进行管理。

避免公开的全局变量。如果一个数据开放程度过大。就难保不会有人想要偷懒,直接读取/设置。
当管理这个数据的人过多,那么想要对这个数据进行升级、优化,会大概率导致其他模块被迫修改。
不符合面向对象开发的价值观。

2. 同样的数据不在多处进行管理。

如果一个程序里面,有多个地方保存了同一个数据,例如当前是不是白天“isDay1”,"isDay2"。
那么当有开发新的功能时,有的人用了变量1,有的人用了变量2。很容易出现数据不一致的情况。
一定要逼着再开发第三个程序段,用于保证isDay1和isDay2保持同步?那岂不是自己给自己添堵!
所以,同样的数据,不要在多个地方进行管理。

3. 能通过其他数据计算出来的数据,不要重复保存。

在程序开发中,经常还会出现一种情况。那就是可以通过计算出来的数据,还要再拿一个变量进行保存。

class DayNightControl
{
    bool isDay;      // 当前是否是白天
    bool isNight;    // 当前是否是黑夜(这个数据就是重复)
}

当前是否是晚上,可以通过!isDay获得,那么就不要再重复记录isNight。这是一个一眼就能看出问题的例子。
还有很多隐藏的情况。

例如:某个控件是否显示。显示条件可能由A,B,C三个条件控制。本可以通过A&&B&&C进行计算得出。此时额外增加一个visible变量,就会给后续的程序维护造成麻烦。

原文链接: https://www.cnblogs.com/girakoo/p/17128321.html

欢迎关注

微信关注下方公众号,第一时间获取干货硬货;公众号内回复【pdf】免费获取数百本计算机经典书籍

    【技术分享】面向对象开发系列之【封装】

原创文章受到原创版权保护。转载请注明出处:https://www.ccppcoding.com/archives/318463

非原创文章文中已经注明原地址,如有侵权,联系删除

关注公众号【高性能架构探索】,第一时间获取最新文章

转载文章受原作者版权保护。转载请注明原作者出处!

(0)
上一篇 2023年2月17日 上午9:33
下一篇 2023年2月17日 上午9:33

相关推荐