笔记:继承设计的技巧

来源:互联网 发布:sqlserver enterprise 编辑:程序博客网 时间:2024/05/20 16:00

1、将公共操作和域放在超类。

2、不要使用受保护的域,原因有两点:第一,子类集合是无限制的,任何一个人都能够由某个类派生一个子类,并编写代码直接访问protected的实例域,从而破坏了封装性。第二,在Java语言中,在同一个包中的所有类都可以访问protected域,而不管它是否是这个类的子类。

3、使用继承实现“is-a”关系,使用继承很容易达到节省代码的目的,但有时候也被滥用了。例如,假设需要定义一个钟点工类。钟点工的信息包括姓名、雇佣日期,但是没有薪水。他们是按小时计薪,而且不因加班而加薪,这似乎应该由Employee类派生子类Contractor(承包人),再添加一个hourlyWage(小时工资)的域。这并不是一个好设计,这样一来,每个钟点工对象都包含了薪水和计时工资两个域。

4、除非所有继承的方法都有意义,否则不要使用继承。

5、在覆盖方法时,不要改变预期的行为,不要偏离了最初的设计想法。

6、使用多态,而非类型信息,使用多态方法或接口编写的代码比使用多种类型进行检测的代码更加易于维护和扩展。

7、不要过多的使用反射,但对于编写系统程序比较使用。

0 0