📜  预期的类、接口、枚举或记录 (1)

📅  最后修改于: 2023-12-03 14:58:46.708000             🧑  作者: Mango

预期的类、接口、枚举或记录

Java中为了利用面向对象编程,常常引入类、接口、枚举或记录等对象来实现代码的模块化和复用。这些对象应该具有一定的结构和约定,以便开发者能够对其进行正常的调用和使用。这些约定就是Java中的预期的类、接口、枚举或记录。

预期的类

预期的类应该具备以下特点:

  • 类名应符合标识符的命名规则,应该是一个名词或名词短语。
  • 类应该尽量使其方法和属性的访问级别保持最小限度,即只开放必要的公共接口。
  • 类的字段应该尽量不可变,以保证其不受外界的影响从而提高代码的可维护性。
  • 类的属性应该进行显式的初始化,以避免出现空指针异常等运行时错误。
  • 类的构造函数应该相应地初始化类的所有成员变量。
  • 类应该实现适当的getters和setters方法以确保其属性可以被外部访问和修改。

以下是一个符合预期的类的简单示例:

public class Person {
  private final String name;
  private final int age;

  public Person(String name, int age) {
    this.name = name;
    this.age = age;
  }

  public String getName() {
    return name;
  }

  public int getAge() {
    return age;
  }
}
预期的接口

预期的接口应该具备以下特点:

  • 接口名应符合标识符的命名规则,应该是一个形容词或形容词短语。
  • 接口应该尽量将其公共接口保持最小限度以确保与类的实现解耦。
  • 接口应该使用除Object类以外的类、接口或枚举类型作为返回值或参数类型。
  • 接口在定义时应该考虑到可能的变化和扩充。

以下是一个符合预期的接口的简单示例:

public interface Speakable {
  String speak();
}
预期的枚举

预期的枚举应该具备以下特点:

  • 枚举名应符合标识符的命名规则,应该是一个名词或名词短语。
  • 枚举应该与其有效的值进行一一映射。
  • 枚举应该定义为不可变对象。
  • 应该在枚举中定义toString()方法以便在需要打印时使用。

以下是一个符合预期的枚举的简单示例:

public enum Gender {
  MALE("男性"),
  FEMALE("女性"),
  UNKNOWN("未知");

  private final String name;

  Gender(String name) {
    this.name = name;
  }

  @Override
  public String toString() {
    return name;
  }
}
预期的记录

预期的记录应该具备以下特点:

  • 记录应该使用不可变的类实现。
  • 记录中封装的数据应该是基本类型或不可变类型。
  • 记录应该提供一个清晰的打印接口,以便调试和检查记录的状态。

以下是一个符合预期的记录的简单示例:

public final class Coordinate {
  private final int x;
  private final int y;

  public Coordinate(int x, int y) {
    this.x = x;
    this.y = y;
  }

  public int getX() {
    return x;
  }

  public int getY() {
    return y;
  }

  @Override
  public String toString() {
    return "Coordinate{" +
      "x=" + x +
      ", y=" + y +
      '}';
  }
}

总之,预期的类、接口、枚举或记录是确保代码可读性、可维护性和代码整洁度的好方法。