值對象模式【其他模式】
阿新 • • 發佈:2018-12-25
void hashcode shc get all public equal int ati
值對象模式
public class ValueObject { /** * 值對象模式:值對象的相等性和引用無關,只有當兩個值對象的屬性值都相等時它們即相等。 * 1)值對象必須覆蓋 equals 和 hashcode 方法。 * 2)值對象的屬性必須是 final 修飾,不允許修改。 * 3)通過靜態方法來創建對象。 * 4)允許使用 get 方法訪問值對象內部的屬性。 */ @Test public void all() { final User u1 = User.of("zxd", 29); final User u2 = User.of("zxd", 29); assertEquals(u1, u2); } } @EqualsAndHashCode @Getter class User { private final String name; private final int age; private User(String name, int age) { super(); this.name = name; this.age = age; } public static final User of(String name, int age) { return new User(name, age); } }
值對象模式【其他模式】