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

系列传送门

创建型模式
这一类模式用于创建对象。
隐藏或抽象创建对象的细节,而不是使用 new直接创建对象。

设计模式一、创建型模式-单例模式
设计模式二、创建型模式-简单工厂模式
设计模式三、创建型模式-工厂模式
设计模式四、创建型模式-抽象工厂模式
设计模式五、创建型模式-建造者模式

简单/静态工厂模式

该模式的核心是“隐藏对象创建的细节”,静态方法只是一种实现方式。
可以扩展该模式,成为一个可以创建对象,为对象建立依赖关系,以及管理对象生命周期的轻量级组件。

定义邮件对象

/**
 * 邮件对象
 */
class EmailInfo {
    // 发送者
    private String from;
    // 接受者
    private String to;
    // 标题
    private String subject;
    // 内容
    private String content;
    // 发送时间
    private Date sendDate;

    // TODO Getter and setter
}

定义邮件工厂

/**
 * 邮件工厂
 * 

* 对外只提供一个生成邮件信息的方法,方法内封装了生成邮件信息的细节 */ 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 发送邮件
    }
}

你可能感兴趣的:(设计模式二、创建型模式-简单工厂模式)