值物件模式【其他模式】
阿新 • • 發佈:2018-12-24
值物件模式
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); } }