1、工廠設計模式:
凡是出現了大量的產品需要建立,並且具有共同的介面時,可以通過工廠方法模式進行建立。
共同的**:
public inte***ce sender
public class mailsender implements sender
}public class smssender implements sender
}普通工廠模式:
public class sendfactory_factory_normal else if ("sms".equals(type)) else }}
/** * 普通工廠設計模式:就是建立乙個工廠類,對實現了同一介面的一些類進行例項的建立
* 缺點:當傳入的字串錯誤則不能正確的建立物件
*/public class normalui
}多個工廠方法模式:
public class factory_more
public sender producesms()
}/**
* 是對普通工廠方法模式的改進,在普通工廠方法模式中,如果傳遞的字串出錯,
* 則不能正確建立物件,而多個工廠方法模式是提供多個工廠方法,分別建立物件。
*/public class moreui
}靜態工廠模式:
public class sendfactory_static
public static sender producesms()
}/**
* 將上面的多個工廠方法模式裡的方法置為靜態的,不需要建立例項,直接呼叫即可。
*/public class staticui
}總結:在以上的三種模式中,第一種如果傳入的字串有誤,不能正確建立物件,第三種相對於第二種,不需要例項化工廠類,所以,大多數情況下,我們會選用第三種——靜態工廠方法模式。
缺點: 工廠方法模式有乙個問題就是,類的建立依賴工廠類,也就是說,如果想要拓展程式,必須對工廠類進行修改,這違背了閉包原則,所以,從設計角度考慮,有一定的問題,如何解決?
就用到抽象工廠模式,建立多個工廠類,這樣一旦需要增加新的功能,直接
增加新的工廠類就可以了,不需要修改之前的**。
其實這個模式的好處就是,如果你現在想增加乙個功能:發及時資訊,則只需做乙個實現類,
實現sender介面,同時做乙個工廠類,實現provider介面,就ok了,無需去改動現成的**。這樣做,拓展性較好!
抽象工廠模式:
public inte***ce provider
public class sendmailfactory implements provider
}public class sendsmsfactory implements provider
}public class abstractui
}拓展:
public class sendphonefactory implements provider
}public class phonesender implements sender
}public class abstractui
}
設計模式 23種設計模式
一 軟體設計模式的概念 軟體設計模式 software design pattern 又稱設計模式,是一套被反覆使用 多數人知曉的 經過分類編目的 設計經驗的總結。它描述了在軟體設計過程中的一些不斷重 生的問題,以及該問題的解決方案。也就是說,它是解決特定問題的一系列套路,是前輩們的 設計經驗的總結...
23種設計模式
建立型 1.單件模式 singleton pattern 2.抽象工廠 abstract factory 3.建造者模式 builder 4.工廠方法模式 factory method 5.原型模式 prototype 結構型 6.介面卡模式 adapter pattern 7.橋接模式 bridg...
23種設計模式
設計模式 一書歸納出23種設計模式 1 建立型模式 前面講過,社會化的分工越來越細,自然在軟體設計方面也是如此,因此物件的建立和物件的使用分開也就成為了必然趨勢。因為物件的建立會消耗掉系統的很多資源,所以單獨對物件的建立進行研究,從而能夠高效地建立物件就是建立型模式要 的問題。這裡有6個具體的建立型...