Java 杂谈

设计模式二、创建型模式-简单工厂模式

2019-05-12  本文已影响0人  Alisallon

系列传送门

创建型模式
这一类模式用于创建对象。
隐藏或抽象创建对象的细节,而不是使用 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 发送邮件
    }
}
上一篇 下一篇

猜你喜欢

热点阅读