gpt4 book ai didi

c# - 领域层类的范围

转载 作者:行者123 更新时间:2023-11-30 13:01:59 24 4
gpt4 key购买 nike

在我的域层中,我有一个名为“Client”的类。通常我只会在类中创建与该客户端直接相关的属性,例如 - 'Firstname'、'Lastname'、'Address' 等,以及与客户端相关的方法。

我的问题是,如果向此类中添加一个对一组客户端执行工作的方法,是否会被认为是糟糕的 OO 设计?

例如- 假设我想对客户执行一项操作,例如更新他们的电子邮件地址。在执行此操作之前,我想确保没有其他客户端使用相同的电子邮件地址,因此我在客户端类之外创建了一个名为 ValidateEmail(string emailAddress) 的方法。

在此方法中,查询客户存储库以查找具有该电子邮件地址的任何现有客户,并返回一个 bool 值。

这会被认为是糟糕的 OO 设计吗?我宁愿不必创建任何其他类或填充 UI 层 - 具有此验证的 Controller 逻辑,它似乎适合 Client 类,但感觉对 sibling 执行操作不太正确..

谢谢

最佳答案

如果是我,我会使用 ClientCollection 类。无论如何,除了名称之外,您几乎拥有此功能,所以我认为这没什么大不了的。

作为该类的一部分,我可能有一个名为 GetClientsWithEmail 的方法,它返回具有特定电子邮件地址的客户列表。通过这种方式,这个方法纯粹是一个查找,不包含任何业务逻辑。事实上,我可以在这里设想一行 linq。

当有人试图更新客户的电子邮件地址时,您将获得一些验证码。这可能是也可能不是 Client 类的一部分(您指出它是,但不一定是)。总之,这段验证码可以调用ClientCollection.GetClientsWithEmail方法,测试返回的Client对象个数是否为0。

关于c# - 领域层类的范围,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16895865/

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