gpt4 book ai didi

java - 面向对象的设计——我的值(value)对象应该只包含 setter/getter 吗?

转载 作者:行者123 更新时间:2023-11-30 11:23:46 25 4
gpt4 key购买 nike

<分区>

在我的项目的业务逻辑中,我主要有“值对象”“经理”

值对象无处不在。它们可以是用户、汽车、照片、相册等。

管理者的存在是为了控制他们的值(value)对象。可以是UserManager、CarManager、PhotoManager、AlbumManager等。他们使用值对象创建/删除/getList 和其他操作。

现在我面临的问题是:我的值对象是否应该包含 setter我的第一个意见是,因为我认为值对象状态只由他的经理控制会更好。

但也有不好的一面 - 代码重复和明显的双重工作。

如果没有 setter,我的经理将拥有像 userManager.addPhoto(userToAddTo, photoToBeAdded) 这样的方法,它在内部调用 user.addPhoto(photo)(方法 addPhoto 存在于实现中,但不存在于接口(interface)中)。如果只有几个这样的方法还好,但是当它得到很多这样的“setter”方法时,管理器似乎有点难看,而且显然是双重工作。

那么,我是否应该在我的值对象中使用 setter?

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com