码迷,mamicode.com
首页 > 其他好文 > 详细

值对象模式【其他模式】

时间:2018-12-24 22:34:58      阅读:152      评论:0      收藏:0      [点我收藏+]

标签:and   vat   code   return   修改   对象   void   als   his   

值对象模式

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);
    }
}

值对象模式【其他模式】

标签:and   vat   code   return   修改   对象   void   als   his   

原文地址:https://www.cnblogs.com/zhuxudong/p/10171284.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!