系列傳送門(mén)
創(chuàng)建型模式
這一類(lèi)模式用于創(chuàng)建對(duì)象贿讹。
隱藏或抽象創(chuàng)建對(duì)象的細(xì)節(jié),而不是使用 new直接創(chuàng)建對(duì)象够掠。
設(shè)計(jì)模式一民褂、創(chuàng)建型模式-單例模式
設(shè)計(jì)模式二、創(chuàng)建型模式-簡(jiǎn)單工廠(chǎng)模式
設(shè)計(jì)模式三、創(chuàng)建型模式-工廠(chǎng)模式
設(shè)計(jì)模式四赊堪、創(chuàng)建型模式-抽象工廠(chǎng)模式
設(shè)計(jì)模式五面殖、創(chuàng)建型模式-建造者模式
簡(jiǎn)單/靜態(tài)工廠(chǎng)模式
該模式的核心是“隱藏對(duì)象創(chuàng)建的細(xì)節(jié)”,靜態(tài)方法只是一種實(shí)現(xiàn)方式哭廉。
可以擴(kuò)展該模式脊僚,成為一個(gè)可以創(chuàng)建對(duì)象,為對(duì)象建立依賴(lài)關(guān)系遵绰,以及管理對(duì)象生命周期的輕量級(jí)組件辽幌。
定義郵件對(duì)象
/**
* 郵件對(duì)象
*/
class EmailInfo {
// 發(fā)送者
private String from;
// 接受者
private String to;
// 標(biāo)題
private String subject;
// 內(nèi)容
private String content;
// 發(fā)送時(shí)間
private Date sendDate;
// TODO Getter and setter
}
定義郵件工廠(chǎng)
/**
* 郵件工廠(chǎng)
* <p>
* 對(duì)外只提供一個(gè)生成郵件信息的方法,方法內(nèi)封裝了生成郵件信息的細(xì)節(jié)
*/
public class EmailFactory {
/**
* 生成郵件信息椿访,封裝了生成郵件信息的細(xì)節(jié)(簡(jiǎn)單/靜態(tài)工廠(chǎng)模式)
*
* @param from 發(fā)送者
* @param to 接受者
* @param subject 標(biāo)題
* @param content 內(nèi)容
* @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;
}
}
測(cè)試
public class Main {
public static void main(String[] args) {
// 創(chuàng)建郵件1
EmailInfo emailInfo1 = EmailFactory.createEmail("allon", "alisallon", "測(cè)試1", "這是一個(gè)測(cè)試1");
// 發(fā)送郵件1
sendEmail(emailInfo1);
// 創(chuàng)建郵件2
EmailInfo emailInfo2 = EmailFactory.createEmail("allon", "alisallon", "測(cè)試2", "這是一個(gè)測(cè)試2");
// 發(fā)送郵件2
sendEmail(emailInfo2);
}
private static void sendEmail(EmailInfo emailInfo) {
// TODO 發(fā)送郵件
}
}