JAVA-类的设计原则
作者:互联网
1.内聚性
- 类应该描述一个单一的实体,而所有的类操作应该在逻辑上相互契合来支持一个一致的目的.
- 若一个实体承担太多职责,应该按照各自的职责分成几个类. eg.String,StringBuilder,StringBuffer
2.一致性
- 遵循Java程序设计风格和命名习惯.(通常将数据声明置于构造方法之前,将构造方法置于普通方法之前)
- 选择名字要把保持一致(相同的操作选择相同的名字).
- 一般来说,应具有一致性地提供一个公共无参构造方法,用于构建默认实例.
- 若不想让用户创建类的对象(只是用其方法),可以在类中声明一个私有的构造方法.
(Math类,GuessDate类)
3.封装性
- 一个类应该使用private修饰符隐藏其数据以免用户直接访问(使得类更易维护)
- 只有希望数据域可读的情况下才提供获取方法;也只在希望数据域可更新的情况下提供设置方法.
4.清晰性
- 为使设计清晰,内聚性,一致性,封装性都是很好的设计原则.
- 类还应该有一个很清晰的合约,从而易于解释和理解.
- 用户可以以各种不同组合,不同顺序以及在各种环境中结合使用多个类
- 设计类不应限制用户如何以及何时使用;
- 设计属性时应允许用户按任何顺序和组合设置值;
- 设计方法应使得功能的实现和他们出现的顺序无关.
- 方法应在不产生混淆的情况下进行直观定义.
- 不应该声明一个可以从其他数据域推导出来的数据域.(birthDate, age)
5.完整性
- 一个类应通过属性和方法提供各种自定义功能的实现方式.
6.实例和静态
- 依赖于类的具体实例的变量或方法必须是一个实例变量或方法;若一个变量被类中所有实例所共享,其应被声明为静态.
- 应该总是使用类名(而非引用变量)引用静态变量和方法,以增强可读性并避免错误.
- 不要从构造方法中传入参数来初始化静态数据域,最好使用静态方法改变/设置静态数据域.
- 实例和静态是面向对象程序设计不可或缺的部分,不要忽视静态数据域或方法.
- 构造方法永远都是实例方法(因为其用来创建具体实例);不能从静态方法中调用实例变量或方法.
7.继承和聚合
- 继承:is-a(是一种)
eg.苹果是一种水果. - 聚合:has-a(具有)
eg.人具有名字.
8.接口和抽象类
- 抽象类:比较强的is-a (更具体)
- 接口:较弱的is-a (更普适)
- 接口比抽象类更灵活(一子类只能继承一父类,但却可实现任意数目接口)
- 接口不能包含数据域(变量).
标签:静态数据,JAVA,原则,构造方法,接口,实例,设计,方法,变量 来源: https://www.cnblogs.com/jingqz/p/15085296.html