基于 Abstract Factory 模式与 Singleton 模式实现一个简单的邮件生成程序
时间: 2023-05-22 14:01:10 浏览: 149
好的,我可以回答这个问题。以下是一个基于 Abstract Factory 模式与 Singleton 模式实现的简单邮件生成程序的示例代码:
```
// 邮件接口
interface Mail {
void send();
}
// 邮件工厂接口
interface MailFactory {
Mail createMail();
}
// 简单邮件实现
class SimpleMail implements Mail {
public void send() {
System.out.println("发送简单邮件");
}
}
// HTML 邮件实现
class HtmlMail implements Mail {
public void send() {
System.out.println("发送 HTML 邮件");
}
}
// 简单邮件工厂
class SimpleMailFactory implements MailFactory {
private static SimpleMailFactory instance = new SimpleMailFactory();
private SimpleMailFactory() {}
public static SimpleMailFactory getInstance() {
return instance;
}
public Mail createMail() {
return new SimpleMail();
}
}
// HTML 邮件工厂
class HtmlMailFactory implements MailFactory {
private static HtmlMailFactory instance = new HtmlMailFactory();
private HtmlMailFactory() {}
public static HtmlMailFactory getInstance() {
return instance;
}
public Mail createMail() {
return new HtmlMail();
}
}
// 邮件生成程序
class MailGenerator {
public static void main(String[] args) {
MailFactory factory = SimpleMailFactory.getInstance();
Mail mail = factory.createMail();
mail.send();
}
}
```
这个程序实现了一个简单的邮件生成程序,它使用了 Abstract Factory 模式和 Singleton 模式。Abstract Factory 模式用于创建不同类型的邮件,而 Singleton 模式用于确保每个邮件工厂只有一个实例。在这个示例中,我们创建了两个邮件工厂:SimpleMailFactory 和 HtmlMailFactory,它们分别用于创建简单邮件和 HTML 邮件。我们还创建了一个 MailGenerator 类,它使用 SimpleMailFactory 来创建一个简单邮件并发送它。
阅读全文