问题描述
当我在软件构造课上听到封装的方法的概念时,对此并没很深入的理解,仅仅只是了解了这个概念。但是,在第三次实验中,随着实践的深入,我对于封装有更深入的思考 。
封装使你做好准备去改变
在软件构造实验三中,有一个步骤是变化,也就是说需要改变你的代码,以满足新## 标题要求。当我分析代码时候,我发现我只需要改变ADT实现接口的方法即可,也就是说我只需要改变ADT,客户端并不需改变任何代码即可。
之所以不需要改变客户端,是因为我并没有将ADT的内部方法实现暴露给客观端,因此我只需要改变ADT实现接口。封装使得我们的内部具体实现不会暴露,因此更好地ReadyForChange。
封装使得你的代码更安全
软件构造最重要的就是确保代码安全,也就是safe from rep exposuer。当我们封装数据后,我们的rep都是private final,所有返回的集合都是Unmodified类的,因此我们没有后顾之忧,担心数据被客户端改变。
封装是面向对象语言给我们的馈赠
正是因为Java是面向对象的语言,因此它天生就适合数据封装。类似C等面向过程的语言,只能使用static等关键字隐藏数据,较麻烦。因此,这也是我们理解面向对象Java语言的重要一点。