类的设计原则

本文探讨了类设计中的关键原则,包括内聚性、一致性和封装性等。强调了每个类应只负责单一职责,并通过示例说明了如何实现良好的类设计。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

类的设计原则

内聚性

类应该描述一个单一的实体,而所有的类操作应该在逻辑上相互配合,支持一个连贯性的目标。例如:可以专门为学生使用一个类,但不应该将学生与教职工组合在同一个类中,因为学生和教职工是不同的实体。
如何一个实体担负太多的职责,就应该按各自的职责分成几个类。例如 String, StringBuffer, StringBuilder 都可以用于处理字符串,但是他们的职责并不相同

一致性

遵循标准Java程序设计风格和命名习惯。给类,数据域和方法选择有信息量的名字。流行的风格是将数据声明置于构造方法之前,并且将构造方法置于方法之前。
选择名字要保持一致性。给类似的操作选择不同的名字并非好的习惯。例如:length()方法返回String.StringBuilder,StringBuffer的大小,如果在这些类中给这个方法用不同的名字就不一致了
一般来说,应该一律提供一个为构造默认实例的公共无参构造方法。如果一个类不支持无参构造方法,要用文档写出原因。如果没有显示定义构造方法,就假定有一个空的方法体的默认无参构造方法。
如果不让用户创建类的对象,可以在类中声明一个私有的构造方法,就像Math类和GuessDate类的情况一样。

封装性

一个类应该使用private修饰符隐藏其数据,以免用户直接使用它。这使得类更易于维护。
如果想让数据域可读,只需提供get方法。如果想让数据域可更新,应该提供set方法。例如:Course类为coursename提供了get方法,但是没有提供set方法,这是因为一旦创建了课程类的对象,是不允许用户修改课程名字的。

清晰性

为使设计清晰,内聚性,一致性和封装性都是很好的设计原则。除此之外,类应该有一个很清晰的合约,易于解释和理解
用户可以以多种不同的组合和顺序,在许多不同环境中结合多个类。因此,应该设计一个类,这个类应该没有对用户使用目的及时间的限制,设计属性以容许用户按值的任何顺序和任何组合来设置,所设计的方法实现的功能应该与他们出现的顺序无关。
方法应在不产生混淆的情况下凭直觉来定义。
不应该声明一个来自其他数据域的数据域。例如,下面的Person类有两个数据域:birthDate和age.由于age可以从birthDate导出,所以age不应该声明为数据域

    public class Person{
    private java.util.Date.birthDate;
    private int age
    ...
    }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值