C中的封装?

来源:互联网 发布:windows挂载linux分区 编辑:程序博客网 时间:2024/05/16 06:08

     看“系统程序员成长计划-谁动了你的隐私(上)  ”,其中有个侯捷的观点“学从难处学, 用从易处用”,我的理解是学习的时候要知道怎么做,而且也要知道为什么做,搞清楚原理。使用的时候用最简单、有效、最易理解方法实现,而不要没有必要使用复杂的技巧。在平时开发中遵循一个原则就是不要重复造轮子,但是有时候知道怎么使用轮子,也要知道轮子怎么造出来,当使用轮子有问题才能快速的定位原因。

 

     在文章中提出3个问题“什么是封装?为什么要封装?如何实现封装?”

 

     我的回答: 

  1.    什么是封装?

        程序对外提供接口使用,不把内部处理暴露出来,因为调用者不需要了解内部,也不能让调用者了解和修改内部的数据。(网上的解释:隐藏对象的属性和实现细节,仅对外公开接口,控制在程序中属性的读和修改的访问级别.)
  2.   为什么要封装?

       实现调用者对程序的安全访问(对于程序来说)、便捷使用(对于调用者);

        (他的观点:隔离变化,程序内部的变化只要不修改接口,对调用者来说是一样的;降低复杂度,屏蔽内部实现细节,只暴露最小接口,会让系统变得简单,在一定程度降低复杂度。)
     
  3.   如何实现封装?

      面向对象的语言在语言级别上实现了对访问的控(public、private、protect等关键字);C的封装可能只能在设计上实现,好像没有提供语言级别上的访问控制。

 

原创粉丝点击