Money类的不可变性很重要,一般情况下值修改都是通过重新初始化对象来实现,它也承载了具体的业务逻辑——加、减。而实体是不可变的,其业务是比值对象要少的。SnackMachine将大部分的操作委托给了Money,尽可能地将业务逻辑委托给值对象,值对象地不可变性决定了高可维护性。我们还介绍了TDD测试先行的概念,它和DDD是天生一对的,接下来的章节为了加快速度,我会忽略掉部分TDD的过程。还有一点,实验期代码先行,之后转为TDD是非常不错的方法,确保测试覆盖领域模型是必须的。