4

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

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

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

在此方法中,使用该电子邮件地址查询任何现有客户端的客户端存储库并返回一个布尔值。

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

谢谢

4

1 回答 1

0

如果是我,我会有一个 ClientCollection 类。无论如何,除了名称之外,您几乎都有这个,所以我认为这没什么大不了的。

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

当有人尝试更新客户的电子邮件地址时,您将获得一些验证码。这可能是也可能不是 Client 类的一部分(您表明它是,但它当然不必是)。无论如何,这段验证代码可以调用 ClientCollection.GetClientsWithEmail 方法,并测试返回的 Client 对象数量是否为零。

于 2013-06-03T15:23:20.193 回答