系列传送门
创建型模式
这一类模式用于创建对象。
隐藏或抽象创建对象的细节,而不是使用 new直接创建对象。
设计模式一、创建型模式-单例模式
设计模式二、创建型模式-简单工厂模式
设计模式三、创建型模式-工厂模式
设计模式四、创建型模式-抽象工厂模式
设计模式五、创建型模式-建造者模式
简单/静态工厂模式
该模式的核心是“隐藏对象创建的细节”,静态方法只是一种实现方式。
可以扩展该模式,成为一个可以创建对象,为对象建立依赖关系,以及管理对象生命周期的轻量级组件。
定义邮件对象
/**
* 邮件对象
*/
class EmailInfo {
// 发送者
private String from;
// 接受者
private String to;
// 标题
private String subject;
// 内容
private String content;
// 发送时间
private Date sendDate;
// TODO Getter and setter
}
定义邮件工厂
/**
* 邮件工厂
* <p>
* 对外只提供一个生成邮件信息的方法,方法内封装了生成邮件信息的细节
*/
public class EmailFactory {
/**
* 生成邮件信息,封装了生成邮件信息的细节(简单/静态工厂模式)
*
* @param from 发送者
* @param to 接受者
* @param subject 标题
* @param content 内容
* @return EmailInfo 邮件信息
*/
public static EmailInfo createEmail(String from, String to, String subject, String content) {
EmailInfo emailInfo = new EmailInfo();
emailInfo.setFrom(from);
emailInfo.setTo(to);
emailInfo.setSubject(subject);
emailInfo.setContent(content);
emailInfo.setSendDate(new Date());
return emailInfo;
}
}
测试
public class Main {
public static void main(String[] args) {
// 创建邮件1
EmailInfo emailInfo1 = EmailFactory.createEmail("allon", "alisallon", "测试1", "这是一个测试1");
// 发送邮件1
sendEmail(emailInfo1);
// 创建邮件2
EmailInfo emailInfo2 = EmailFactory.createEmail("allon", "alisallon", "测试2", "这是一个测试2");
// 发送邮件2
sendEmail(emailInfo2);
}
private static void sendEmail(EmailInfo emailInfo) {
// TODO 发送邮件
}
}