类设计原则
译自《Java核心技术》,自己做了些注解
一、成员变量尽量设为private注:这个要求主要是为了保证封装性。尽管Java也提供了public、protected、package(默认的)等丰富的访问控制符,但是除非是特殊要求,尽可能地把成员变量设为private。因为随着继承等问题,你很难跟踪之后别人如何使用你设计的类。
二、一定要把数据初始化
注:虽然Java会按照默认规则初始化成员变量(数据类型设为0,布尔型设为false,高级类设为null),但是最好还是自己写代码初始化(这在一定程度上也可以帮你梳理一下思路)。可以直接在成员变量定义后直接给个初始值,也可以在构造函数中将全部成员变量初始化。
三、尽量将相关联的数据用一个新类来定义,而不是定义很多个成员变量来体现注:比如你可以为邮编、省份、城市、街道
各定义一个String类型的变量,也可以简单地再定义一个类:地址,来体现这所有信息。
四、不是所有的成员变量都需要对应的 设置函数 和 修改函数
注:应该从实际出发,思考各成员变量的意义,有些变量,如雇佣日期、出生日期之类的,往往只需要在构造函数中使用一次即可,显然不再需要修改函数。
五、在定义类时采用统一的格式
作者建议的格式是:
整体上分为三个部分
public部分
package部分
private部分
在每一个部分再按如下顺序排列各成分
成员函数
静态成员函数
成员变量
静态成员变量
注:作者的思路是,把开放给用户使用的放在前面。比如对用户(或其他程序员)来说,public的是最有用的,放在最前;成员函数比成员变量更有意义,所以如此排列。
当然,这只是一种建议,最重要其实还是统一,用你自己习惯的方式也行,只要前后一致。
六、类的功能要统一和相对单一
注:这是个程序设计方面的大课题,耦合度方面的思考
七、类的名字、成员变量的名字、变量的名字要反应其功能注:这在所有程序设计语言中都有同样的要求,相对而言Java的命名更加宽松,但为了程序的可读性,还是要有规范统一的方式来实现。