1. 程式人生 > >[設計模式]建立型模式

[設計模式]建立型模式

定義

建立型模式抽象了例項化的過程。它將系統與它的物件建立、結合、表示的方式分離

建立型模式都會將關於該系統使用哪些具體的類的資訊封裝起來。

在軟體工程中,建立型模式是處理物件建立的設計模式,試圖根據實際情況使用合適的方式建立物件。

基本的物件建立方式可能會導致設計上的問題,或增加設計的複雜度。建立型模式通過以某種方式控制物件的建立來解決問題。

主導思想

1、將系統使用的具體類封裝起來。
2、隱藏這些具體類的例項建立和結合的方式。

分類

建立型模式又分為物件建立型模式類建立型模式。物件建立型模式處理物件的建立,類建立型模式處理類的建立。

物件建立型模式把物件建立的一部分推遲到另一個物件中。(代表模式:單例模式建造者模式原型模式抽象工廠模式

類建立型模式將它物件的建立推遲到子類中。(代表模式:工廠方法模式

應用

現代軟體工程更加依賴物件的組合,而不是類的繼承,強調從硬編碼的行為轉變到定義一組基本行為來組合成複雜的行為。

硬編碼的行為不夠靈活,因為如果想要改變設計的一部分,需要通過重寫或者重新實現才能完成。

另外,硬編碼沒有提高重用性,而且難以跟蹤錯誤。由於這些原因,建立型模式比硬編碼的行為更有用。

建立型模式使設計變得更靈活,提供了不同的方式,從程式碼中移除了對需要例項化的具體類的引用。換句話說,這些模式增強了物件和類之間的獨立性。

在以下情況中,可以考慮應用建立型模式:

  • 一個系統需要和它的物件和產品的建立相互獨立。
  • 一組相關的物件被設計為一起使用。
  • 隱藏一個類庫的具體實現,僅暴露它們的介面。
  • 建立獨立複雜物件的不同表示。
  • 一個類希望它的子類實現它所建立的物件。
  • 類的例項化在執行時才指定。
  • 一個類只能有一個例項,而且這個例項能在任何時候訪問到。
  • 例項應該能在不修改的情況下具有可擴充套件性。

代表模式

推薦閱讀

參考資料

《大話設計模式》
《HeadFirst設計模式》

相關推薦

設計模式-建立模式-單例

單例模式保證一個類只有一個物件,並且提供一個訪問該例項的全域性訪問點。 1.單例模式例項一(餓漢式) public class Singleton { private static Singleton sin = new Singleton(); /// 直接初始化一個例項物件

設計模式-建立模式-單例模式

設計模式-建立型模式-單例模式 建立型模式 建立型模式隱藏類的例項和建立細節,通過隱藏物件如何建立組合在一起達到整個系統獨立。 單例模式 確保同一時刻只有一個例項被訪問。 Ensure a class has only one instance, and provide a global point

設計模式-建立模式-工廠模式(工廠三兄弟)

設計模式-建立型模式-工廠模式(工廠三兄弟) 工廠模式分為簡單工廠,工廠方法,抽象工廠。 簡單工廠模式 一個介面,三個具體類,一個工廠,通過選擇,生產出對應的物件。 package demo2; public class Circle implements Shape{ public Circ

設計模式-建立模式-工廠模式(工廠三兄弟) TypeScript

設計模式-建立型模式-工廠模式(工廠三兄弟) TypeScript 簡單工廠模式 定義一個介面,三個具體類。然後書寫如下,通過選擇,生產出相應的物件 // 定義Shape介面 interface Shape { draw():void; } // 下面為產品類 // 產品 Circle cla

設計模式-建立模式-建造者模式

設計模式-建立型模式-建造者模式 建造者模式即生成器模式,將一個複雜的構建與它的表示分離,使得同樣的構建過程可以建立不同的表示。 程式碼如下 // 產品類 public class Product{ public void doSomething(){ // 業務處理 }

java設計模式(建立模式)之建造者模式

1.建造模式的本質 1.實現了物件元件的單獨構造和裝配這個模式的構建過程複雜情況下使用. 2.實現了構建和裝配的解耦,不同構建起,相同的裝配,可以做出不同的物件.相同的構建起,不同裝配順序也可以出現不同的物件,試下了構建演算法/裝配演算法的解耦.實現了

java設計模式(建立模式)之原型模式prototype

原型模式: 通過產生一個物件需要非常複雜的資料準備或訪問許可權.則可以使用原型模式 java中的克隆技術,以某個物件為原型,複製出新的物件, 優勢:效率高(直接克隆,避免了重複執行構造過程) 克隆類似於new,但是不同於new.new建

設計模式--建立模式--抽象工廠

//Creational Patterns--abstract factory //建立型模式--抽象工廠 //----------------------------------------------------------------- class Tank { pu

設計模式--建立模式--工廠方法

//----------------------------------------------------------------- //Creational Patterns--factory method //建立型模式--工廠方法 //----------------

設計模式--建立模式--建造者模式

//Creational Patterns--builder //建立型模式--建造者模式 //1.Builder    抽象建造者 //2.ConcreteBuilder    具體建造者 //3.Director    指揮者 //4.Product 產品 //產品

設計模式--建立模式--原型模式

//Creational Patterns--Prototype Pattern //建立型模式--原型模式 //Prototype(抽象原型):定義了克隆自身的介面。 //ConcretePrototype(具體原型):被複制的物件,需要實現 Prototype 定義的介

23種設計模式----工廠方法模式----建立模式

工廠方法模式或者說是簡單工廠方法。 ps:學會模板方法再學習工廠方法更簡單,或者說工廠方法模式是在模板方法的基礎上進行設計的。 1.什麼是工廠方法模式 將例項的生成交給子類(出自《圖解設計模式》) 這句話怎麼理解? 我自己的理解就是把建立和實現分離。 使用工廠

設計模式-建立模式-工廠模式,抽象工廠模式

簡單工廠模式 簡單工廠模式不是 23 種裡的一種,簡而言之,就是有一個專門生產某個產品的類。 它只算工廠模式的一個特殊實現。簡單工廠模式在實際中的應用相對於其他2個工廠模式用的還是相對少得多,因為它只適應很多簡單的情況。 簡單工廠例項 1)建立Shape介面 publ

看透設計模式-建立模式

總結下自己關於設計模式的一些思考。(我終於看穿了愛情,不過就是一圈圈圈圈菸圈圈圈圈 用來解悶消遣。。)   設計模式是對一些 常用的類的行為規範的一個最佳實踐的提取。 設計模式不是架構模式,設計模式關注的是程式碼的可讀性,拓展性。而架構關注的是 效能、穩定性、可用性 開閉原則,並不是說,我們

設計模式 建立模式

設計模式主要分為建立性模式、行為模式、結構模式。 建立類模式包括單例模式、工廠模式、建造者模式、原型模式 單例模式 單例模式的核心就是一個類只有一個物件,java簡單實現如下。 package mode.create; /** * 單例設計模式 */ public cl

java設計模式——建立模式專題(二)策略模式

策略模式:說白了,就是將一組演算法封裝起來,使他們可以互換。 package 策略模式; public class StrategePattern { /** * 抽象策略角色 * @author zouxiang * */ public sta

面試題整理--Java設計模式--建立模式

概況 總體來說設計模式分為三大類: (1)建立型模式,共五種:工廠方法模式、抽象工廠模式、單例模式、建造者模式、原型模式。 (2)結構型模式,共七種:介面卡模式、裝飾器模式、代理模式、外觀模式、橋接模式、組合模式、享元模式。 (3)行為型模式,共十一種:策略模式、模板方法模式、觀察者模式、迭代子模式、責任鏈

[設計模式]建立模式

定義 建立型模式抽象了例項化的過程。它將系統與它的物件建立、結合、表示的方式分離。 建立型模式都會將關於該系統使用哪些具體的類的資訊封裝起來。 在軟體工程中,建立型模式是處理物件建立的設計模式,試圖根據實際情況使用合適的方式建立物件。 基本的物件建立方式可能會導致設計上的問題,或增

軟體設計模式-建立模式(二)

 生成器模式:          生成器模式將一個複雜物件的構建與他的表示分離,使得同樣的構建過程可以建立不同的表示。          設計類圖:  組成部分:   (1)Builder:建立Product物件的抽象介面    (2)  Concrete Builde

Java23種設計模式/GOF設計模式--建立模式

目錄 設計模式 面向物件 建立型模式  簡單工廠 設計模式 維基百科把設計模式分為了設計模式和軟體設計模式兩個WIKI,其中前者指的是GOF的設計模式,GOF設計模式針對的是C++和smalltalk等面向物件的高階語言,而軟體設計模式