更新時間:2021年03月17日16時32分 來源:傳智教育 瀏覽次數(shù):
設(shè)計模式是唄編程者總結(jié)出來的一套被反復(fù)使用的、多數(shù)人知曉的、經(jīng)過分類編目的、代碼設(shè)計經(jīng)驗。掌握幾種常用的設(shè)計模式,對于Java應(yīng)聘者來說十分重要,比如單例模式、工廠模式、建造者模式等等,接下來就來簡單介紹一下這幾種常見的設(shè)計模式和它們的應(yīng)用場景。
(1)考察目標(biāo)
考官主要是對一些常用設(shè)計模式和代碼抽取優(yōu)化能力的考核,問題可能涉及6大設(shè)計原則及23種設(shè)計模式。
(2)題目分析
比較熟悉的有:
單例模式:
保證一個類僅有一個實例,并提供一個全局訪問點,比如一些配置文件或者管理類可以設(shè)計為單例,我們常用的線程池也是單例的。
模板方法:
在定義好的算法骨架下,允許子類為一個或多個步驟提供實現(xiàn),一次性實現(xiàn)算法的不變部分,將可變部分留給子類實現(xiàn),當(dāng)子類實現(xiàn)代碼邏輯雷同時,可以使用此設(shè)計模式。
工廠模式:創(chuàng)建對象需要大量的重復(fù)代碼時,通過子類實現(xiàn)方法來創(chuàng)建對象。如Spring中通過工廠模式將創(chuàng)建對象的任務(wù)交給容器管理。
建造者模式:
講復(fù)雜對象的構(gòu)建和表示分離,適用于流程固定,但是順序不一定固定的場景。如需要給一個對象多次給不同的屬性賦值,可以使用鏈?zhǔn)秸{(diào)用傳參,最后生成對象。
另外,如策略模式,觀察者模式,模板方法模式,foreach中的迭代器模式,spring 中ASM的訪問者模式,動態(tài)代理等都有一些了解。
(3)應(yīng)用場景
JavaEE應(yīng)用中,Spring用于創(chuàng)建IOC容器的監(jiān)聽器就是基于觀察者模式的。
Spring中獲取FileSystemResource和ClassPathResource等功能雷同的類時使用模板方法。
單例模式:包含懶漢餓漢式以及不同的變種,工廠類設(shè)計模式一般也設(shè)計為單例。項目中的一些配置,或者引入外部的sdk需要創(chuàng)建管理類,或者封裝自己的框架時,需要用到單例
工廠方法:在編碼時不能預(yù)見需要創(chuàng)建哪種類的實例。
(4)總結(jié)
本題主要考察的是:
1)常用設(shè)計模式
2)代碼抽取優(yōu)化能力
猜你喜歡: