netflix 模式创新_创新设计模式:工厂模式
netflix 模式創(chuàng)新
以前,我們對(duì)創(chuàng)建模式進(jìn)行了介紹,并使用抽象工廠模式來創(chuàng)建對(duì)象族。
下一個(gè)模式是Factory模式 。 當(dāng)涉及到Java時(shí),工廠模式是最常用的模式之一。
那么工廠模式到底是什么呢? 工廠模式處理創(chuàng)建對(duì)象而不指定確切的類或?qū)⒁獎(jiǎng)?chuàng)建的對(duì)象。
讓我們通過使用工廠模式解決憑證問題來付諸行動(dòng)。
假設(shè)我們?cè)趹?yīng)用程序中具有忠誠(chéng)度功能,該功能會(huì)根據(jù)客戶的交易向客戶提供一些優(yōu)惠券。
憑證需要憑證代碼,并且由于它將顯示在應(yīng)用程序中,因此需要特殊格式的html消息。
第一步是創(chuàng)建憑證界面。
package com.gkatzioura.design.creational.factory;public interface Voucher {public String code();public String htmlMessage(); }目前,我們將提供兩種類型的憑證,但是,一旦業(yè)務(wù)人員提出了更多的想法,就可以輕松添加更多的憑證。
第一個(gè)是食品券。
package com.gkatzioura.design.creational.factory;import java.util.UUID;public class FoodVoucher implements Voucher {private UUID code;private static final String htmlMessage= "<html><body> <h1>Food Voucher</h1></body></html>";public FoodVoucher() {code = UUID.randomUUID();}public String code() {return code.toString();}public String htmlMessage() {return htmlMessage;} }第二個(gè)是衣服券。
package com.gkatzioura.design.creational.factory;import java.util.UUID;public class ClothesVoucher implements Voucher {private UUID code;private static final String htmlMessage = "<html><body> <h1>Clothes Voucher</h1></body></html>";public ClothesVoucher() {code = UUID.randomUUID();}public String code() {return code.toString();}public String htmlMessage() {return htmlMessage;} } 憑單將基于交易點(diǎn)系統(tǒng)創(chuàng)建。
如果交易點(diǎn)少于30個(gè),則將創(chuàng)建食品券。 對(duì)于高于30的交易點(diǎn),應(yīng)創(chuàng)建服裝代金券。
因此,下一步是創(chuàng)建一種機(jī)制,該機(jī)制將基于交易點(diǎn)創(chuàng)建憑證。 最好的選擇是工廠模式。
通過選擇工廠模式進(jìn)行總結(jié)
- 我們創(chuàng)建所需的憑證,而不會(huì)向客戶透露任何創(chuàng)建邏輯。
- 客戶端不必指定將要?jiǎng)?chuàng)建的對(duì)象的確切類。
您可以在github上找到源代碼。
在下一篇博客文章中,我們將介紹構(gòu)建器模式 。
另外,我還編寫了備忘單,其中包含“創(chuàng)作設(shè)計(jì)模式”的摘要。
在鏈接中注冊(cè)以接收它。
翻譯自: https://www.javacodegeeks.com/2018/03/creational-design-patterns-factory-pattern.html
netflix 模式創(chuàng)新
總結(jié)
以上是生活随笔為你收集整理的netflix 模式创新_创新设计模式:工厂模式的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 设计模式 原型模式_创新设计模式:原型模
- 下一篇: 构建器设计模式_创新设计模式:构建器模式