3个不同对象的Oop概念

时间:2011-10-10 12:46:21

标签: oop

我有供应商和客户对象。到目前为止一切都很好。

我希望向客户发送一封电子邮件,但为了尊重一些优秀的旧时尚OOP概念,在供应商或客户端添加发送电子邮件方法是不行的,因为这些方法将破坏SRP原则(等等)。我应该说:在客户和供应商中我都有一些基本的CRUD操作。

那么解决方案是什么? 带有静态方法的SupplierClientEmail类,即使该类可能永远不会被触摸或再次使用?你如何在代码中处理这些概念?

2 个答案:

答案 0 :(得分:0)

您是否需要保留电子邮件的记录?如果没有,那么你真的不需要它的对象。你可以拥有EmailService方法sendEmail(client, supplier)或任何有意义的方法。

如果您确实需要跟踪电子邮件,例如在数据库中存储某种标记以显示已发送的电子邮件,您可以拥有一个Email类,其中包含对客户端和供应商的引用,使用dateSent等信息以及您需要的任何其他信息。通过这种方式,您可以随时返回查看向哪个客户/供应商发送的电子邮件。在此方案中,Email了解客户和供应商,但这些类不了解电子邮件。

答案 1 :(得分:0)

如果它真的是一种方法,你将在这里使用一次,永远不会再使用,只有供应商对象,只有在这里作为方法包含它才有意义。在我个人看来,一小部分单方法类比简单添加私有方法更令人困惑和笨拙。

另一种选择是类似于EmailHelper类,然后您可以将此方法引入,以及任何其他与电子邮件相关的松散拟合方法。