月入五万被丈母娘嫌弃?值对象模式(Value Object Pattern)来帮忙

月入五万被丈母娘嫌弃?值对象模式(Value Object Pattern)来帮忙

首页休闲益智卷卷美元更新时间:2024-08-01

目的

值对象=值 对象=将一个值用对象的方式进行表述,来表达一个具体的固定不变的概念

例子代码

大家都知道, 钱不是万能的, 但没有钱是万万不能的, 最近经济不好, 听说国民老公撕葱和著名发布会相声演员浩浩都被限制了消费,


害得我也做梦梦见我的一千万没了, 醒来看了看银行卡忽然安心了, 原来那一千万还在(余额只有三位数).

我有一位朋友, 最近去见丈母娘, 被丈母娘扫地出门, 原话是这么说的:

我们家人没啥工作, 每天就收收租金, 最近拆迁了, 十套房, 每月收租四五万吧, 你这什么抖音的公司, 之前还修过福报, 我就往高了说, 算你一个月三万, 那也配不上我女儿呀, 要不是看你来了二瓶酒过来, 门你都进不来.

怎么回事, 收租的三万和工作的三万不一样?

最近我在脉脉上看到一个热帖:

https://maimai.cn/web/feed_detail?fid=1353811247&efid=YbKYaA1N8jywASeIF2NauQ&use_rn=1

主要讲的是一个中年码农说自己月入三万不开心, 下面的好多评论都是说工资三万肯定不开心, 哪天加班得了癌症就得被某游(yang)戏(zhu)大厂的保安暴力辞退了, 要是收租三万肯定开心.

值对象模式

那我们怎么让值对象模式来帮我们呢, 首先, 一块钱人民币, 就是一块钱人民币, 不因为他的来源而不同, 他的作用都是相同的, 随着业务也不会发生变化, 比如把一元人民币设置成一美元, 丝毫没有意义

@Getter@EqualsAndHashCode@AllArgsConstructorpublic class Money { private BigDecimal amount; //enum is better private String currency; }

只有全部入参函数和 get 方法, 保证非反射等*操作情况下这个对象的值不被改变, 有相同属性的值对象被判断为相等, 所以 hashCode 和 equals 方法, 需要重写, 为什么重写 equals 方法一定要重写 hashCode, 主要是为了一些使用 hashCode 进行去重或者存储的时候不会出现问题

类图如下:

生产例子

比如常见的范围 Range 类(时间, 金额范围等), 地址(省市区), 金额类等等

课后作业

  1. 使用值对象模式写一个泛型 Range 类
  2. 将金额类币种改成枚举, 完善金额类, 比如并发控制, 提供各种构造函数等
查看全文
大家还看了
也许喜欢
更多游戏

Copyright © 2024 妖气游戏网 www.17u1u.com All Rights Reserved