条款20: 避免public接口出现数据成员

条款20: 避免public接口出现数据成员
其实我以前一直不明白,为什么数据成员放在PRIVATE里面,不让外面直接访问;为什么JAVABEAN要那么严格规定。发现自己对

实例了解太少了。
一个非常非常简单的例子
class speeddatacollection {
public:
void addvalue(int speed); // 添加新速度值

double averagesofar() const; // 返回平均速度
};


假设是一个监视器。需要监视每辆车的速度,然后算出平均速度,如果通过一个函数作为介质可以有两种方案:
1。申明一个变量放置平均速度值,通过averagesofar返回
2。不申明该变量,完全通过averagesofar调用来计算
以上这两种情况可以适合在不同情况下使用,比如第一种,需要频繁调用averagesofar;第二种,不常调用averagesofar;需

要修改的时候只要改改类里面的函数就好了

如果根据直接变量返回呢?你可能整个程序都是用该变量返回,如果遇到如上不同情况,修改时将是一个很大的麻烦。

不过话说回来,任何东西太过都不太好,就比如将所有数据成员申明成private通过函数返回等操作。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值