数据的封装和隐藏原则
这是我第一篇文章,总结了网上牛人的经验,以及我在实践中的思考,记录总结,以便日后回顾。 1.尽量降低耦合 1.1.原理: Martin Fowler写到“任何 全局数据 通常都是有问题的,除非可以证明它确实没有问题”。多种原因 导致Java中的全局变量和其他类似的全局结构被认为是一种糟糕的做法。 全局数据的本质和含义违背了数据的封装和隐藏原则。 理想的情况下, 一个对象应该仅仅与那些通过构造函数或方法调用传入的对象交互 。 一个对像的实现应当对它的使用者完全隐藏实现细节。(封装隐藏) 所有使用到了这个 全局数据 的functions都会受到影响,于是所有的这些代码都要被检测、修改、重新测试, 而且,修改所有使用了这个变量的function影响到的其它地方,就这样, 一个变量值的改变影响了一个方法,又造成另一个方法的错误。在程序中,这样问题实在是可怕。 OO系统的一个基本原则是一个Object不应暴露它的实现细节,这样,当你改变了实现细节, 就可以不用改变使用了该对像的的代码部份 。所以,你应当避免getter 和 setter 函数, 因为它们主要用来访问实现细节。 1.2.实践: 尽可能地减少可变状态。特别是在并发程序中。总之,尽可能地减少可变状态。 1.2.1.减少 全局数据的使用;而对于一个对象而言,尽量减少成员变量的使用。 1.2.2.尽可能少地暴露对象自已的状态