工廠設(shè)計(jì)模式是所有設(shè)計(jì)模式中最簡單的設(shè)計(jì)模式!?。。ň褪峭ㄟ^工廠來創(chuàng)建一些對象)
工廠模式的典型應(yīng)用場景:創(chuàng)建對象(當(dāng)我們感覺到創(chuàng)建對象是件很痛苦的事,會(huì)用工廠模式)
工廠模式:簡單工廠,工廠方法,抽象工廠(要支持創(chuàng)建多個(gè)產(chǎn)品,定義一個(gè)抽象工廠,抽象工廠中有多個(gè)工廠方法,可以創(chuàng)建多個(gè)產(chǎn)品)
工廠方法:
抽象工廠:利用工廠方法實(shí)現(xiàn)抽象工廠
為了避免直接在servlet中看到操作數(shù)據(jù)庫的代碼(直接在servlet中通過JDBC訪問數(shù)據(jù)庫),并且由于數(shù)據(jù)庫的不同,操作代碼也不同,譬如分頁查詢的sql語句,mysql的可以:select * from t_article where title like '%"+title+"%' limit ?,?,而在oracle中是不可以用limit的。
實(shí)現(xiàn)方法為:創(chuàng)建一個(gè)接口ArticleDao
然后創(chuàng)建兩個(gè)實(shí)現(xiàn)了ArticleDao接口的類:ArticleDaoImpl(具體實(shí)現(xiàn)了操作MySQL數(shù)據(jù)庫的類)和ArticleDaoImplForOracle(具體實(shí)現(xiàn)了操作Oracle數(shù)據(jù)庫的類)。
HashMap是線程不安全的對象,而Hashtable<>是線程安全的對象。
(public class Hashtable<K,V>
extends Dictionary<K,V>
implements Map<K,V>, Cloneable, java.io.Serializable {}
)
Properties extends Hashtable<Object,Object>繼承了Hashtable,它有更強(qiáng)大的功能,Properties 可以直接讀取文件,而且可以將文件中的鍵值對直接放到Map中來(Properties就是一個(gè)Map),調(diào)用Properties 的load方法(HashMap、Hashtable中沒有load方法),能夠
通常DAO是無狀態(tài)的。
Servlet不僅僅可以處理來自客戶端的請求,還可以利用他的init方法來做些我們想做的初始化工作。
任何一個(gè)請求servlet發(fā)到服務(wù)器端,都會(huì)先調(diào)用servlet中的service()方法,在service方法中根據(jù)請求的Httphead里面攜帶的有關(guān)這個(gè)請求方法的信息,譬如是get或者post方法,然后把這個(gè)請求轉(zhuǎn)發(fā)給doGet()或者doPost(),實(shí)際上任何一個(gè)servlet都有一個(gè)唯一的入口,即service()方法,所以可以在到達(dá)doGet()或者doPost()方法之前,在service()方法中執(zhí)行一些操作。
父類中的this是多態(tài)的,他是具體的子類對象,而不是父類對象。
Spring的主體思想就是DI(依賴注入)、IOC