面向对象类设计7大技巧(如果已具备证明已是高级水平了)

1. 一定要保证数据私有

        这是最重要的;绝对不要破坏封装性。有时候需要,编写一个访问器方法或更改器,但是嘴还还是保持实例的私有性。很多经验告诉我们,数据的表示形式很可能会改变。但他们的使用方式却不会经常发生改变。当数据保持私有时 , 它们的表示形式的变化不会对类的使用者产生影响 , 即使出现 bug 也易于检测 。

2.一定要对数据初始化

        java 不对局部变量进行初始化,但是会对对象的实力进行初始化。最好不要依赖于系统的默认值。而是应该显示的初始化所以的数据,具体的初始化方式可以是提供默认值,也可以在构造函数中设置默认值。

3. 不要再类中使用过多的基本类型

       可以用其他的类代替多个相关的基本类型的使用,这样会使类更加易于理解和易于修改

4. 不是所有的域都需要独立的访问器和域更改器

        需要获得或设置雇员的薪资,一旦构造了雇员对象,就应该禁止更改雇佣日期,并且再对象中,常常包含一些不希望别人获得或设置的实例域,例如,再Address类中,存放州缩写的数组

5. 将职能过多的类进行分解

这样说似乎有点含糊不清,究竟多少算是过多? 每个人有不同的看法,但是如果明确的可以将一个类分解程二个更为简单的类, 就应该将其分解。

6.类名和方法名要能够体现他们的职责

        与变量应该有一个能够反映其含义的名字一样,类也应该如此

7.优先使用不可改变的类

LocalDate 类以及java.time 包中的其他类是不可变的没有方法能修改对象的状态。类似plusDays的方法并不是更改的对象,而是返回状态已修改的新对象。

        更改对象的问题在于,如果多个线程试图同时更新一个对象,就会发生并发改变。其结果是不可预料的,如果类是不可变的,就可以安全的在多个线程间共享其对象。

因此,要尽可能的让泪是不可变的,这是一个很好的想法,对于表示值的类,如一个字符串或者一个时间点,者有其容易,计算会生成新值,而不是更新原来的值。

你可能感兴趣的:(java,java,c++,架构)