码迷,mamicode.com
首页 > 其他好文 > 详细

为什么要设置getter和setter?

时间:2014-10-09 00:54:07      阅读:262      评论:0      收藏:0      [点我收藏+]

标签:c   问题   代码   r   c++   tt   对象   方法   public   

面向对象语言中,通常把属性设置为私有,然后添加getter和setter方法来访问。有人说,这本质上和设置属性为公有没有区别,干脆把属性public算了。也有人反驳,这样做破坏了封装。但是,破坏了封装有何坏处?

今天在读一篇斯坦福大学C++课程讲义时,看到了关于这个问题的说法:

类牵涉到2个角色:实现者和客户端。实现者负责实现,并提供接口;客户端负责调用接口,不关心实现。如果属性变公有,暴露给了客户端,客户端调用了公有属性。假如实现者修改了类的内部实现,比如把某个公有属性给删了或者改了名(这对实现者来说很合理),那么客户端就遭殃了,调用公有属性的代码就无法通过编译。故应把内部实现同客户端隔离。

为什么要设置getter和setter?

标签:c   问题   代码   r   c++   tt   对象   方法   public   

原文地址:http://www.cnblogs.com/happylrui/p/4011806.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!