引言:
首先在面向对象中,封装无处不在。.NET Framework好像就包装了我们开发人员需要的各种类型,方法,接口(比如你要对文件进行操作,System.IO.File里面封装的各种方法就足够你使用了)用户不需要关心具体的体现
封装抽象理解:
封装隐藏了类的内部的具体的实现细节,对外则是提供来统一的访问接口,来操作内部数据成员。在封装原则中,合理的隐藏内部数据,有效的暴露外部行为同样关键。
封装的分析:
1)字段通常定义为private,属性通常为public,而方法的内部实现为private,方法的外部体现为public(所做的这些都是保证内部数据的安全和和靠,又提供来与外部接口的有效交互)
2)从内存来看,因为对象的属性和对象是一样在内存期间是常驻的,只要对象不被垃圾回收机制回收, 它的属性值也将一直存在,并且记录最新一次更新的记录!
封装的智慧:
1)隐藏系统实现的细节,保证系统的安全性和可靠性
2)提供稳定不变的对外接口。因此,我们经常发现一些功能稳定的都被抽象成了接口。
3)封装保证来代码的模块化,提高了软件的复用和功能分离。
4)在难以考虑使用private,public的设计的时候,从开发者与设计者两个角度来出发,这样会比较容易分清访问权限。