类的设计原则

来源:互联网 发布:影楼网络销售工资待遇 编辑:程序博客网 时间:2024/06/07 22:48

类的设计原则

内聚性
类应该描述一个单一的实体,而所有的类操作应该在逻辑上相互配合,支持一个连贯性的目标。例如:可以专门为学生使用一个类,但不应该将学生与教职工组合在同一个类中,因为学生和教职工是不同的实体。
如果一个实体担负太多的职责,经应该按各自的职责分成几个类。例如:String类、StringBuffer类和StringBuilder类都用于处理字符串,但是他们的职责不同。String类处理不可变字符串,StringBuilder类创建可变字符串,StringBuffer与StringBuilder类似,只是StringBuffer类还包含更新字符串的同步方法。
一致性
遵循标准Java程序设计风格和命名习惯。给类、数据域和方法选择有信息量的名字。流行的风格是将数据声明置于构造方法之前,并且构造方法置于方法之前。
选择名字要保持一致。给类似的操作选择不同的名字并非好的习惯。例如:length()方法返回String、StringBuilder和StringBuffer的大小。如果在这些类中给这个方法用不同的名字就不一致了。
一般来说,应该一律提供一个为构造默认实例的公共无参构造方法。如果一个类不支持无参数构造方法,要用文档写出原因。如果没有显示定义构造方法,就假定有一个空方法体的公共默认无参构造方法。
如果不想让用户创建类的对象,可以在类中声明一个私有的构造方法,就像Math类和GuessDate类的情况一样。
封装性
一个类应该使用private修饰符隐藏其数据域,以免用户直接访问它。这使得类更易于维护。
如果想让数据域可读,只需提供get方法。如果想让数据域更新,应该提供set方法。例如:Course类为courseName提供了get方法,但是没有提供set方法,这是因为一旦创建了课程类的对象,是不允许用户修改课程名字的。
清晰性
为使设计清晰,内聚性,一致性和封装性都是很好的设计原则。除此之外,类应该有一个很清晰的合约,易于解释和理解。
用户可以以多种不同的组合和顺序,在许多不同环境中结合多个类。因此,应该设计一个类,这个类应该没有对用户使用目的及使用时间的限制,设计属性以容许用户按值的任何顺序和任何组合来设置,所涉及的方法实现的功能应该与他们出现的顺序无关。例如:Loan类包含属性loanAmount、numberOfYears和annualInterestRate。这些属性的值可以按任何顺序来设置。
方法应该在不产生混淆的想、情况下平直觉来定义。例如:String类中的substring(int beginIndex,int endIndex)方法就有一点混乱。这个方法返回从beginIndex到endIndex-1而不是endIndex的子串。
不应该声明一个来自其他数据域的数据域。
完整性
类经常是为许多不同用户的使用而设计的。为了能在一个广泛的应用中使用,一个类应该通过属性和方法提供多种法案以适应不同用户的不同需求.。例如:为了满足不同应用需求。String类包含了40多种很实用的方法

0 0
原创粉丝点击