java创建型_Java创建型模式
Java創(chuàng)建型模式
在軟件工程中,創(chuàng)建型模式是處理對象創(chuàng)建的設計模式,試圖根據(jù)實際情況使用合適的方式創(chuàng)建對象。基本的對象創(chuàng)建方式可能會導致設計上的問題,或增加設計的復雜度。創(chuàng)建型模式通過以某種方式控制對象的創(chuàng)建來解決問題。
創(chuàng)建型模式由兩個主導思想構成。一是將系統(tǒng)使用的具體類封裝起來,二是隱藏這些具體類的實例創(chuàng)建和結合的方式。
創(chuàng)建型模式又分為對象創(chuàng)建型模式和類創(chuàng)建型模式。對象創(chuàng)建型模式處理對象的創(chuàng)建,類創(chuàng)建型模式處理類的創(chuàng)建。詳細地說,對象創(chuàng)建型模式把對象創(chuàng)建的一部分推遲到另一個對象中,而類創(chuàng)建型模式將它對象的創(chuàng)建推遲到子類中。
創(chuàng)建型模式旨在將系統(tǒng)與它的對象創(chuàng)建、結合、表示的方式分離。這些設計模式在對象創(chuàng)建的類型、主體、方式、時間等方面提高了系統(tǒng)的靈活性。
創(chuàng)建型模式的特點和分類
創(chuàng)建型模式的主要關注點是“怎樣創(chuàng)建對象?”,它的主要特點是“將對象的創(chuàng)建與使用分離”。這樣可以降低系統(tǒng)的耦合度,使用者不需要關注對象的創(chuàng)建細節(jié),對象的創(chuàng)建由相關的工廠來完成。就像我們?nèi)ド虉鲑徺I商品時,不需要知道商品是怎么生產(chǎn)出來一樣,因為它們由專門的廠商生產(chǎn)。
創(chuàng)建型模式分為以下幾種。
單例(Singleton)模式:某個類只能生成一個實例,該類提供了一個全局訪問點供外部獲取該實例,其拓展是有限多例模式。
原型(Prototype)模式:將一個對象作為原型,通過對其進行復制而克隆出多個和原型類似的新實例。
工廠方法(FactoryMethod)模式:定義一個用于創(chuàng)建產(chǎn)品的接口,由子類決定生產(chǎn)什么產(chǎn)品。
抽象工廠(AbstractFactory)模式:提供一個創(chuàng)建產(chǎn)品族的接口,其每個子類可以生產(chǎn)一系列相關的產(chǎn)品。
建造者(Builder)模式:將一個復雜對象分解成多個相對簡單的部分,然后根據(jù)不同需要分別創(chuàng)建它們,最后構建成該復雜對象。
以上 5 種創(chuàng)建型模式,除了工廠方法模式屬于類創(chuàng)建型模式,其他的全部屬于對象創(chuàng)建型模式,我們將在之后的教程中詳細地介紹它們的特點、結構與應用。
使用
現(xiàn)代軟件工程更加依賴對象的組合,而不是類的繼承,強調(diào)從硬編碼的行為轉變到定義一組基本行為來組合成復雜的行為。硬編碼的行為不夠靈活,因為如果想要改變設計的一部分,需要通過重寫或者重新實現(xiàn)才能完成。另外,硬編碼沒有提高重用性,而且難以跟蹤錯誤。由于這些原因,創(chuàng)建型模式比硬編碼的行為更有用。創(chuàng)建型模式使設計變得更靈活,提供了不同的方式,從代碼中移除了對需要實例化的具體類的引用。換句話說,這些模式增強了對象和類之間的獨立性。
在以下情況中,可以考慮應用創(chuàng)建型模式:
? 一個系統(tǒng)需要和它的對象和產(chǎn)品的創(chuàng)建相互獨立。
? 一組相關的對象被設計為一起使用。
? 隱藏一個類庫的具體實現(xiàn),僅暴露它們的接口。
? 創(chuàng)建獨立復雜對象的不同表示。
? 一個類希望它的子類實現(xiàn)它所創(chuàng)建的對象。
? 類的實例化在運行時才指定。
? 一個類只能有一個實例,而且這個實例能在任何時候訪問到。
? 實例應該能在不修改的情況下具有可擴展性。
舉例
創(chuàng)建型設計模式的一些例子如下:
? 抽象工廠模式,提供一個創(chuàng)建相關或依賴對象的接口,而不指定對象的具體類。
? 工廠方法模式,允許一個類的實例化推遲到子類中進行。
? 生成器模式,將一個復雜對象的創(chuàng)建與它的表示分離,使同樣的創(chuàng)建過程可以創(chuàng)建不同的表示。
? 延遲初始化模式,將對象的創(chuàng)建,某個值的計算,或者其他代價較高的過程推遲到它第一次需要時進行。
? 對象池模式,通過回收不再使用的對象,避免創(chuàng)建和銷毀對象時代價高昂的獲取和釋放資源的過程。
? 原型模式,使用原型實例指定要創(chuàng)建的對象類型,通過復制原型創(chuàng)建新的對象。
? 單例模式,保證一個類只有一個實例,并且提供對這個實例的全局訪問方式。
總結
以上是生活随笔為你收集整理的java创建型_Java创建型模式的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: sql server 修改字段不能为空_
- 下一篇: php 读取 stl 文件,科学网—[转