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

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之類。即使你對這個感愛好,小編不妨免費瓜分。

猜你喜歡

主站蜘蛛池模板: 久久国产精品一区二区三区 | 免费一级做a爰片性色毛片 免费一极毛片 | 一级毛片一级毛片一级毛片 | 成人午夜免费视频 | 久久高清一区二区三区 | 好看欧美视频高清va | 国内视频一区二区 | 男人天堂网在线观看 | 亚洲网站www | 久久久久久久免费视频 | 国产一区二区精品久久凹凸 | 免费国产成人高清视频网站 | 欧美在线高清视频 | 欧美一级欧美一级毛片 | 三级视频在线播放 | 欧美精品亚洲精品日韩一区 | 久久精品国产免费一区 | 日本三级在线观看中文字 | 亲子乱子伦xxxx | 国产成人yy精品1024在线 | 国产成人精品三级在线 | 亚洲一区 在线播放 | 在线はじめてのおるすばん | 大伊香蕉精品视频在线观看 | 久久久久久久久久综合情日本 | 欧美日韩精品一区二区另类 | 手机看片亚洲 | 欧美精品成人一区二区视频一 | 成人国产精品一级毛片了 | 亚洲二三区 | 美女一级ba大片免色野外 | 久久久久欧美精品网站 | 国产精品二区在线 | 日韩免费毛片全部不收费 | 国产精品免费视频能看 | 欧美一区二 | 久久久www免费人成看片 | 美女张开腿让男人桶的 视频 | 欧美一级aⅴ毛片 | 亚洲精品国产福利一区二区三区 | 免费萌白酱国产一区二区三区 |