1. 程式人生 > >GOF23設計模式之原型模式與建立型模式總結

GOF23設計模式之原型模式與建立型模式總結


原型模式prototype
原型模式又稱做克隆模式,拷貝模式。實際上是一個記憶體的操作
原型模式
--通過new產生一個物件需要非常繁瑣的資料準備或訪問許可權,則可以使用原型模式。
就是java中的克隆技術,以某個物件為原型,複製出新的物件。顯然,新的物件具有原型物件的特點。
克隆類似於new,但是又不同於newnew出來的物件屬性採用的是預設值。克隆出的物件的屬性完全和原型相同。並且克隆出的新的物件不會影響原型物件,然後再修改克隆物件的值
原型模式實現:
Cloneable介面和clone方法
Protorype模式中實現起來最困難的地方就是記憶體複製操作,所幸就是java
中提供了clone方法替我們做了絕大部分的事情
注意:克隆和拷貝是一回事。
利用序列化和反序列化實現深克隆
建立型模式的總結:都是用來幫助我們建立物件的!
  • 單例模式:
保證一個類只有一個例項,並且提供一個訪問該例項的全域性訪問點。
  • 工廠模式
    • 簡單工廠模式:用來生產同一等級結構中的任意產品,(對增加新的產品,需要修改已有程式碼)
    • 工廠方法模式用來生產同一等級結構中的固定產品
    • 抽象工廠模式i
      
      用來生產不同產品族的全部產品(對於增加新的產品,無能為力。支援增加產品族)
  • 建造者模式:分離了物件子元件的單獨構造(builder來負責)和裝配(由Director負責),從而可以構造出複雜的物件
  • 原型模式通過new產生一個物件需要非常複雜的資料準備和訪問許可權,則可以使用原型模式。
短時間大量建立物件時,圓形模式和普通new方式效率測試
開發中的應用場景
原型模式很少單獨出現,一般是和工廠方法模式一起出現,通過clone的方法建立一個物件,然後由工廠方法提供給呼叫者。
Spring中的bean的建立實際就是兩種:單例模式和原型模式。當然原型模式需要和工廠模式搭配起來。