美文网首页Java 杂谈
设计模式二、创建型模式-简单工厂模式

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

作者: Alisallon | 来源:发表于2019-05-12 14:24 被阅读0次

    系列传送门

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

    相关文章

      网友评论

        本文标题:设计模式二、创建型模式-简单工厂模式

        本文链接:https://www.haomeiwen.com/subject/rajcaqtx.html