日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程语言 > asp.net >内容正文

asp.net

netflix 模式创新_创新设计模式:工厂模式

發(fā)布時(shí)間:2023/12/3 asp.net 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 netflix 模式创新_创新设计模式:工厂模式 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

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)建憑證。 最好的選擇是工廠模式。

package com.gkatzioura.design.creational.factory;public class VoucherFactory {public Voucher create(Integer discountPoints) {if(discountPoints<=0) {throw new IllegalArgumentException("Invalid number of discount points!");}if(discountPoints<30) {return new FoodVoucher();} else {return new ClothesVoucher();}}}

通過選擇工廠模式進(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)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。