JAVA-类的设计原则

时间:2021-07-31
本文章向大家介绍JAVA-类的设计原则,主要包括JAVA-类的设计原则使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。

1.内聚性

  1. 类应该描述一个单一的实体,而所有的类操作应该在逻辑上相互契合来支持一个一致的目的.
  2. 若一个实体承担太多职责,应该按照各自的职责分成几个类. eg.String,StringBuilder,StringBuffer

2.一致性

  1. 遵循Java程序设计风格和命名习惯.(通常将数据声明置于构造方法之前,将构造方法置于普通方法之前)
  2. 选择名字要把保持一致(相同的操作选择相同的名字).
  3. 一般来说,应具有一致性地提供一个公共无参构造方法,用于构建默认实例.
  4. 若不想让用户创建类的对象(只是用其方法),可以在类中声明一个私有的构造方法.
    (Math类,GuessDate类)

3.封装性

  1. 一个类应该使用private修饰符隐藏其数据以免用户直接访问(使得类更易维护)
  2. 只有希望数据域可读的情况下才提供获取方法;也只在希望数据域可更新的情况下提供设置方法.

4.清晰性

  1. 为使设计清晰,内聚性,一致性,封装性都是很好的设计原则.
  2. 类还应该有一个很清晰的合约,从而易于解释和理解.
  3. 用户可以以各种不同组合,不同顺序以及在各种环境中结合使用多个类
  • 设计类不应限制用户如何以及何时使用;
  • 设计属性时应允许用户按任何顺序和组合设置值;
  • 设计方法应使得功能的实现和他们出现的顺序无关.
  1. 方法应在不产生混淆的情况下进行直观定义.
  2. 不应该声明一个可以从其他数据域推导出来的数据域.(birthDate, age)

5.完整性

  • 一个类应通过属性和方法提供各种自定义功能的实现方式.

6.实例和静态

  1. 依赖于类的具体实例的变量或方法必须是一个实例变量或方法;若一个变量被类中所有实例所共享,其应被声明为静态.
  2. 应该总是使用类名(而非引用变量)引用静态变量和方法,以增强可读性并避免错误.
  3. 不要从构造方法中传入参数来初始化静态数据域,最好使用静态方法改变/设置静态数据域.
  4. 实例和静态是面向对象程序设计不可或缺的部分,不要忽视静态数据域或方法.
  5. 构造方法永远都是实例方法(因为其用来创建具体实例);不能从静态方法中调用实例变量或方法.

7.继承和聚合

  1. 继承:is-a(是一种)
    eg.苹果是一种水果.
  2. 聚合:has-a(具有)
    eg.人具有名字.

8.接口和抽象类

  1. 抽象类:比较强的is-a (更具体)
  2. 接口:较弱的is-a (更普适)
  3. 接口比抽象类更灵活(一子类只能继承一父类,但却可实现任意数目接口)
  4. 接口不能包含数据域(变量).

原文地址:https://www.cnblogs.com/jingqz/p/15085296.html