》設計目標:可擴展性,靈活性,可插入性。
》設計原則
● Open Closed Principle 開閉原則
對擴展開放,對修改關閉。
對面向對象的語言來說,不可以更改的是系統的抽象層,而可以擴展的是系統的實現層。
●裡式代換原則
任何基類可以出現的地方,子類一定可以出現。
●依賴倒轉原則
要依賴於抽象,不要依賴於實現。
●合成/組合原則
盡量使用復合而不是繼承
●迪米特法則
一個軟件的實體應該減少與其他實體發生相互作用。
●接口隔離原則
應該提供小的單獨接口。
》抽象類
●抽象類應該擁有盡可能多的代碼。
●抽象類應當擁有竟可能少的數據。
》創建模式:是對類的實例化過程的抽象化。
●類的創建模式:類的創建模式使用繼承關系,把類的創建延遲到子類。從而封裝了客戶端將得到哪些具體類的信息。
●對象的創建模式:把對象的創建過程動態的委派給另一個對象。從而動態的決定客戶端將得到那些具體類的實例。
》簡單工廠模式(Simple Factory)
● 工廠類角色(Creator):工廠類在客戶端的直接調用下創建產品對象。他往往有一個具體的Java類實現。
● 抽象產品角色(Product):是所有創建對象的父類,或是共同的接口。抽象產品的角色可以用一個Java接口實現。
●具體產品角色(Concrete Product):創建的任何角色都是這個對象的實例。有具體java類實現。
》工廠方法模式(Factory Method)
●定義一個創建產品對象的工廠接口,將實際創建工作推遲到子類。
●抽象工廠角色(Creator):它是與應用程序無關的,任何在模式中創建對象的工廠類必須實現這個接口。
●具體工廠角色(Concrete Creaor):實現抽象接口,與應用密切的邏輯。並且受到程序的調用用來創建產品對象。
● 抽象產品角色(Product):是所有創建對象的父類,或是共同的接口。抽象產品的角色可以用一個Java接口實現。
●具體產品角色(Concrete Product):創建的任何角色都是這個對象的實例。有具體java類實現。
》抽象工廠模式(Abstract Factory)
●工廠方法模式對應的是一個產品等級結構。抽象工廠對應多個。
●抽象工廠角色(Creator):它是與應用程序無關的,任何在模式中創建對象的工廠類必須實現這個接口。
●具體工廠角色(Concrete Creaor):實現抽象接口,與應用密切的邏輯。並且受到程序的調用用來創建產品對象。
● 抽象產品角色(Product):是所有創建對象的父類,或是共同的接口。抽象產品的角色可以用一個Java接口實現。
●具體產品角色(Concrete Product):創建的任何角色都是這個對象的實例。有具體java類實現。
》單例模式(Single)
●某個類只有一個實例。
●自己創建實例。
●向整個系統提供實例。
》建造模式(Builder)
●將一個產品的內部表象與產品的生產過程分隔開來,從而可以使一個建造過程生成具有不同表象的產品對象。
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●