封装
含义:
它隐藏了类内部的具体实现细节,对外提供统一访问接口,来操作数据内部成员。
作用:实现了UI分离,程序员不许知道类内部的具体实现,只需按照接口协议控制即可。同时对类内部来说,保证了类内部成员的安全性和可靠性。
举一个栗子
对象:小王,ATM机,银行
场景:小王去银行取钱,为老婆买礼物
分析:
1、小王不知道ATM机中有多少钱,ATM机如何计算钱款,ATM机如何告知银行系统,银行又如何把钱返回小王的数目。对小王来说,ATM机是个黑匣子,只能等着取钱;对银行来说,ATM是它可靠、安全、高信任度的员工。
2、小王要取得钱,必须遵循ATM机提供的对外约定。他使用砖头砸开、用公交卡冒充等都会被ATM机视为非法行为,无效行为。
结论:
1、小王以工资卡和ATM机交互信息,ATM机的入卡口就是对外提供的接口,砖头、公交卡都不符合约定格式。
2、ATM机在内部进行身份验证、钱款计算、余额查询等一系列操作,对小王都是不可见的。对于银行来说,这种封闭操作保障了银行内部的安全、可靠。
小王遵守了协议,一切流程稳步进行。