【发布时间】:2011-03-14 18:51:12
【问题描述】:
我需要创建一个电子邮件通知服务(作为更大项目的一部分)。
它将用于发送基于 html 模板的几种类型的通知消息。
我可以通过两种方式来设计它:
-
第一种方式是基于建造者模式。它是通用的(我认为)并且可以处理所有必要的情况。但是对于那些将要使用它的人来说并不是很方便。典型用法如下所示:
messageBuilder .put("name", "John Doe") .put("company", companyObj) .processPattern(pattern) .send(addresses, subject); -
第二种方法是显式实现所有情况。这意味着使用代码(如下所示)将尽可能简单,但每次我们需要处理任何新案例时,我们都必须修改 API(添加新方法)。
messageSender.sendPersonExpenceNotification(addresses, "John Doe", company);
哪个更好?为什么? (如果重要的话,语言是 Java)
谢谢!
【问题讨论】:
标签: java design-patterns oop api-design