观看麻豆影视文化有限公司-国产 高清 在线-国产 日韩 欧美 亚洲-国产 日韩 欧美 综合-日日夜夜免费精品视频-日日夜夜噜

java工廠設計模式詳解(java和python的區別)

  • 生活
  • 2023-04-25 12:51

多條告白如次劇本只需引入一次

媒介

即日來和小搭檔們瓜分下安排形式中的工場形式啦

一、工場形式

咱們都領會,安排形式有23種,依照功效和運用場景不妨分為三大類:

創造型形式構造型形式動作型形式工場安排形式(FactoryPattern)呢,即是一種很罕見的安排形式,屬于創造型形式的,重要效率即是來創造東西的~

道理圖

先來看一個小栗子

二、大略工場形式(非23種)

道理圖

?

例子的話,發覺也挺多的比方百般品牌的電腦呀,大哥大呀,家電呀……

比方條記本電腦的例子

抽取大眾接口

這邊就只供給一個歸來品牌的接口

publicinterfaceILaptop{Stringbrand();}1.2.3.接話柄現類

這邊就舉兩個例子~

publicclassHuaWeiLaptopimplementsILaptop{@OverridepublicStringbrand(){return"HuaWei";}}?publicclassMacLaptopimplementsILaptop{@OverridepublicStringbrand(){return"Mac";}}1.2.3.4.5.6.7.8.9.10.11.12.13.工場類

最重要的即是這個工場類了,咱們把創造東西的本領將給它~

publicclassLaptopFactory{?publicstaticILaptopcreateLaptop(Stringbrand){switch(brand){case"HuaWei":returnnewHuaWeiLaptop();case"Mac":returnnewMacLaptop();default:returnnull;}}}1.2.3.4.5.6.7.8.9.10.11.12.13.嘗試

就如許,咱們就大略的實行了一個工場形式的運用了~,此后創造東西就徑直調用功廠的本領就不妨了

publicclassLaptopMain{publicstaticvoidmain(String[]args){ILaptophw=LaptopFactory.createLaptop("HuaWei");Stringbrand=hw.brand();System.out.println(brand);}}1.2.3.4.5.6.7.固然,這個是最大略的工場形式例子了,也叫作大略工場形式

固然這個也有很鮮明的缺點,以是咱們再來看看這個工場本領形式

三、工場本領形式

道理圖

?

想想大略工場的寫法,將創造東西的一切操縱都封裝在一個工場里,是不對理的,以是咱們要進一步解耦

抽取工場大眾接口

publicinterfaceILaptopFactory{ILaptopcreateLaptop();}1.2.3.工場實行類

publicclassHuaweiLaptopFactoryimplementsILaptopFactory{@OverridepublicILaptopcreateLaptop(){returnnewHuaWeiLaptop();}}1.2.3.4.5.6.嘗試

大略變換上頭嘗試案例的前兩句代碼即可

HuaweiLaptopFactoryhuaweiLaptopFactory=newHuaweiLaptopFactory();ILaptopmac=huaweiLaptopFactory.createLaptop();1.2.是否很大略的就實行了這個工場形式了

四、籠統工場形式

道理圖

?

那么工場嘛,確定不只一條消費線,它確定有其余的交易,比方大哥大呀,其余電器啥的。

以是咱們再反復上頭條記本產物的例子,再建少許其余類,而后也經過工場類去創造它即可。

籠統工場

先設置一個籠統工場

publicabstractclassAbstractFactory{publicabstractIPhonecreatePhone();publicabstractILaptopcreateLaptop();}1.2.3.4.工場實行類

也就多了一個罷了呀~

publicclassHuaweiFactoryextendsAbstractFactory{@OverridepublicIPhonecreatePhone(){returnnewHuaWeiPhone();}?@OverridepublicILaptopcreateLaptop(){returnnewHuaWeiLaptop();}}1.2.3.4.5.6.7.8.9.10.11.五、總結

在運用工場形式時,咱們不妨創造從大略工場(非23種)——》工場本領——》籠統工場

這是一個連接擴充,解耦的進程,咱們不妨在名目種按照須要舉行采用~

比方產物多的話就選籠統工場,簡單的話就徑直用功廠大概大略工場就不妨了

至此,咱們領會到工場形式是屬于第23中學安排形式中的創造型形式,重要用處即是創造東西,同聲簡單步調解耦。

接著,咱們再來想想Spring中庸工場形式相關的

說到這邊,你想到什么了呢?

不領會的話,就默念Factory,Factory,Factory,嘿嘿哈~

是否腦際中一下子展示出來了這兩貨

BeanFactoryFactoryBean從名字就不妨看出這兩貨和工場相關(辨別經過getBean和getObject獲得東西)

那么咱們先來引見下她們叭

六、BeanFactory

源碼的第一句話

TherootinterfaceforaccessingaSpringbeancontainer.(IOC的根接口)

不妨創造它利害常中心的組件。

按照莊重的人命周期

?

不妨創造,經過BeanFactory創造一個Bean要過程特殊莊重的過程處置,很煩瑣。

本領

?

本領有很多,比方獲得別號呀,典型呀,能否是單例,原形等

經過getBean去獲得東西

重要效率

按照BeanDefinition天生相映的Bean東西。

?

七、FactoryBean

源碼

不妨創造就這么三個本領,一個小工場

?

經過getObject本領來歸來一個東西

獲得東西時:

即使beanName沒有加&號,則獲得的是泛型T的東西。即使增添了&號,獲得的是實行了FactoryBean接口自己的東西,如EhCacheFactoryBean而正由于它的玲瓏,它也被普遍的運用在Spring里面,以及Spring與第三方框架或組件的調整進程中。

八、BeanFactory和FactoryBean的辨別是什么?

BeanFactory是一個大工場,是IOC容器的基礎,有煩瑣的bean人命周期處置進程,不妨天生出形形***的BeanFactoryBean是一個小工場,它本人也是一個Bean,然而不妨天生其余Bean?結果一個題目

九、Spring中工場形式的運用

既是都和工場相關,那么咱們就挑個軟柿子捏一下

FactoryBean工場形式圖

?

不妨創造和咱們上頭引見的工場本領形式一律,大眾接口和各別的實行類,經過簡直的工場獲得東西。

BeanFactory也是一致的,就不畫啦

十、歸納

畫個圖歸納下啦

結果

Spring關系材料:

Spring條記-176頁的常識中心整治

其余還整治成了40多套PDF文書檔案:全套的Java口試寶典畫冊,“本能調優+微效勞框架結構+并發編制程序+開源框架+散布式”等七大口試專欄,包括Tomcat、JVM、MySQL、SpringCloud、SpringBoot、Dubbo、并發、Spring、SpringMVC、MyBatis、Zookeeper、Ngnix、Kafka、MQ、Redis、MongoDB、memcached之類。即使你對這個感愛好,小編不妨免費瓜分。

猜你喜歡

主站蜘蛛池模板: 欧美一区不卡二区不卡三区 | 亚洲国产精品综合久久20 | 色久网站| 精品久久中文字幕有码 | 欧美一区三区 | 欧美无玛 | 欧美一级毛片片免费孕妇 | 最新亚洲精品国自产在线 | 国产伦精品一区二区三区无广告 | 久久亚洲国产最新网站 | 日韩一区二区久久久久久 | 亚洲国产高清在线精品一区 | 国产成人精选免费视频 | 成年美女黄网站色大 | 伊人手机视频 | 18成人免费观看网站入口 | 91日本在线精品高清观看 | 日本理论片午夜论片 | 长腿校花被啪到腿软视频 | 国内精品一区二区在线观看 | 欧美黄色一级视屏 | 国产日韩欧美在线观看播放 | 久草视频手机在线 | 亚洲线精品一区二区三区 | 九草在线免费观看 | 怡红院自拍 | 色欧美在线 | 久久这里一区二区精品 | 99国产福利视频区 | 欧美视频在线观看免费精品欧美视频 | 亚洲国产天堂久久综合网站 | 最新国产精品亚洲 | 在线观看人成网站深夜免费 | 色综合久久久高清综合久久久 | 亚洲综合天堂网 | 日本欧美一区二区三区不卡视频 | 日本三级香港三级妇三 | 日本一区二区三区精品视频 | 一区二区三区久久精品 | 成人在线免费网站 | 喷潮白浆 |