设计类的一些技巧
对象与类的一些概念,在面向对象语言当中大同小异,在此不多做详述。 在实际的编写代码当中,有一些技巧能让我们设计出来类更具有OOP的专业水准。 参考自《Java核心技术 卷一》 ? 1.一定要保证数据私有也就是说不要破坏封装性。有时候可能会需要到访问的方法或者更新的方法,但是不要嫌麻烦,最好还是保持实例域的私有性。当数据保持私有时,它们的表示形式的变化不会对类的使用者产生影响。我的理解是,比如有一个类需要多次使用,但是如果保持封装性,访问或更新或其他操作都有唯一的操作方法,那么使用起来就会非常一致,就像使用编程语言的自带方法一样方便、一致。 ? 2.一定要对数据初始化最好不要依赖于系统的默认值,而是应该显式地初始化所有的数据,具体的初始化方式可以是提供默认值,也可以是在所有构造器中设置默认值。 ? 3.不要在类中使用过多的基本类型意思就是用一个有意义的类去替代多个相关联的基本类型。注意不是基本的数据类型。如: private String street; private String city; private String state; private int zip; 可以用一个Address的类去替代这些基本的类型。 ? 4.不是所有的域都需要独立的域访问器和域更改器在第一点中,说到要保持类的封装性,但是不是所有类都需要访问方法和更改方法,因为在实际的业务需求中,有些数据是不希望被看到或者更改的。这一点需要根据实际的需求来设计,只是提醒一下,在封装类的时候不要想都不想,直接把访问器和更改器全都整上。 ? 5.将职责过多的类进行分解说的明白一点就是,一个类的功能一定要单一,不要什么功能都写在一个地方。分开写好处非常明显,我觉得最重要的一点就是可以提高代码的复用性,而且易于维护。这样以后碰到需要相同功能的需求时,直接调用之前的写过的就行了。 ? 6.类名和方法名要能够体现他们的职责这一点对于一些初学者或者英语不好的同学,是非常容易忽略的一点。刚开始敲一些例子,非常喜欢用类型T1,a1类似的方法名。但是为了培养好习惯,和能够让别人看得懂,一定要起跟类和方法作用相接近的单词作为名称。对于英语不好的同学,一个翻译软件必不可少,还能慢慢的积累词汇。 ? 7.优先使用不可变的类当多个线程同时更新一个对象时,就会发生并发更改,结果是不可预料的。如果类是不可变的,就可以安全地在多个线程间共享其对象。但是在实际中,很多类是需要更新的。不可变类常见于表示值的类中,比如时间等。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- The 10 Most Important Security Controls Missing in Java
- 程序集 – 在从中断处理程序返回之前,是否必须弹出由某些异
- Java多线程查询
- 阶段1 语言基础+高级_1-3-Java语言高级_02-继承与多态_第7节
- Java对象(创建过程、内存布局、访问方法)
- 为什么Java 8 CompletableFuture thenCompose会根据完成顺序
- Java 7 Try-With-Resources(AutoCloseable)实现
- java – Guice:我必须用@Inject注释每个类的对象图吗?
- java – 运行可执行jar文件的最小unix权限是什么?
- 基于EJB技术的商务预订系统的开发