設(shè)計(jì)模式:工廠模式
定義:工廠方法模式定義了一個創(chuàng)建對象的接口,但由子類決定要實(shí)例化的類是哪一個哺眯,工廠方法讓類把實(shí)例化推遲到子類猪钮。
設(shè)計(jì)原則:
依賴倒置原則
要依賴抽象,不要依賴具體類肝陪。這個原則說明了:不能讓高層組件依賴低層組件,而且刑顺,不管高層或低層組件氯窍,“兩者”都應(yīng)該依賴于抽象。所謂“高層”組件蹲堂,是由其他低層組件定義行為的類狼讨。
倒置在哪里:在依賴倒置原則中的倒置是指和一般的OO設(shè)計(jì)的思考方式完全相反。高層組件和低層組件都依賴于抽象柒竞。
指導(dǎo)方針:
- 變量不可以持有具體類的引用熊楼,在java中避免使用new而使用工廠
- 不要讓類派生自具體類,如果派生自具體類能犯,就會依賴具體類,要派生于抽象(接口或者抽象類)
- 不要覆蓋基類中已實(shí)現(xiàn)的方法犬耻,如果覆蓋踩晶,基類就不是一個真正適合被繼承的抽象,基類中已實(shí)現(xiàn)的方法應(yīng)該由所有子類共享枕磁。
設(shè)計(jì)模式:抽象工廠模式##
定義:抽象工廠模式提供了一個接口渡蜻,用于創(chuàng)建相關(guān)或依賴對象的家族,而不需要明確指定具體的類。
要點(diǎn)
- 所有的工廠都是用來封裝對象的創(chuàng)建
- 簡單工廠茸苇,雖然不是真正的設(shè)計(jì)模式排苍,但仍不失為一個簡單的方法,可以將客戶程序從具體類中解耦学密。
- 工廠方法使用繼承:把對象的創(chuàng)建委托給子類淘衙,子類實(shí)現(xiàn)工廠方法來創(chuàng)建對象
- 抽象工廠使用對象組合:對象的創(chuàng)建被是現(xiàn)在工廠接口所暴露出來的方法中
- 所有的工廠模式都通過減少應(yīng)用程序和具體類之間的依賴而促進(jìn)送耦合
- 工廠方法允許類將實(shí)例化延遲到子類中進(jìn)行
- 抽象工廠創(chuàng)建相關(guān)的對象家族,而不需要依賴它們的具體類
- 依賴倒置原則腻暮,指導(dǎo)我們避免依賴具體類型彤守,而要盡量依賴于抽象
- 工廠是很有威力的技巧,幫助我們針對抽象編程哭靖,而不要針對具體類編程