我有供应商和客户对象。到目前为止一切都很好。
我希望向客户发送一封电子邮件,但为了尊重一些优秀的旧时尚OOP概念,在供应商或客户端添加发送电子邮件方法是不行的,因为这些方法将破坏SRP原则(等等)。我应该说:在客户和供应商中我都有一些基本的CRUD操作。
那么解决方案是什么? 带有静态方法的SupplierClientEmail类,即使该类可能永远不会被触摸或再次使用?你如何在代码中处理这些概念?
答案 0 :(得分:0)
您是否需要保留电子邮件的记录?如果没有,那么你真的不需要它的对象。你可以拥有EmailService
方法sendEmail(client, supplier)
或任何有意义的方法。
如果您确实需要跟踪电子邮件,例如在数据库中存储某种标记以显示已发送的电子邮件,您可以拥有一个Email
类,其中包含对客户端和供应商的引用,使用dateSent
等信息以及您需要的任何其他信息。通过这种方式,您可以随时返回查看向哪个客户/供应商发送的电子邮件。在此方案中,Email
了解客户和供应商,但这些类不了解电子邮件。
答案 1 :(得分:0)
如果它真的是一种方法,你将在这里使用一次,永远不会再使用,只有供应商对象,只有在这里作为方法包含它才有意义。在我个人看来,一小部分单方法类比简单添加私有方法更令人困惑和笨拙。
另一种选择是类似于EmailHelper类,然后您可以将此方法引入,以及任何其他与电子邮件相关的松散拟合方法。