文章出處

Java設計模式(24)創建型設計模式總結:本篇主要想總結一下5種創建型設計模式,比較一下它們之前的相同點和不同點以及實際使用需求。

(一)概述

創建型設計模式是3種大類設計模式中最好理解也是相對簡單的設計模式,它們包括工廠方法模式、抽象工廠模式、單例模式、生成器模式和原型模式。

(二)區別

1)工廠方法模式與抽象工廠模式:

兩種工廠模式實現的原理差不多,當需要大量創建同一類別的對象時,都可以使用這兩種模式。區別在于工廠方法模式僅也只創建一個工廠類,通過工廠類內部的不同方法來生產不同的產品對象;而抽象工廠模式在于針對每個產品對象都要創建一個只服務于該產品的工廠類,這些工廠類實現了相同的產品生成接口。總之,工廠方法模式無論有多少種類的產品,都只有一個工廠類,而抽象工廠模式有多少種類的產品就有多少個針對該產品的工廠類,而且這些工廠類實現相同的接口。

2)單例模式

這種模式在系統設計中使用的最多,簡要概括就是要實現單例的類在系統中從始至終只實例化一次,其他類想要引用單例類都只能通過靜態函數去引用。使用該模式值得注意的事項是:在實例化時要避免因為多線程同時實例化而產生的異常,所以在實例化的函數中一般會加一個同步鎖。

3)生成器模式

生成器模式,也叫建造者模式,當生成器類設置相同的參數屬性,卻能根據不同需求得出不同的生成對象時,可以使用該模式。比如某個學生填寫了自己的個人信息,對于學校錄入系統來說,錄入的信息是相同的,但是該學生有可能是全日制的,也有可能是夜校的,原因在于學校的檔案生成系統(即生成器)為該學生錄入的是全日制的檔案還是夜校的檔案。

4)原型模式

原型模式,實際上就是復制拷貝,將一個實體類通過拷貝的方式來創建相似的對象。復制拷貝有兩種情況,一種是深復制,一種是淺復制。深復制是指完全拷貝實體類從而生成一個新的實體類,兩個實體類在內存中有各自的存儲位置,兩者毫無關系。淺復制是指拷貝實體類而生成一個新的實體類,新的實體類和原實體類公用彼此類中的引用數據類型,如類class、接口interface和數組array。

看文倉www.kanwencang.com網友整理上傳,為您提供最全的知識大全,期待您的分享,轉載請注明出處。
歡迎轉載:http://www.kanwencang.com/bangong/20170106/82813.html

文章列表




Avast logo

Avast 防毒軟體已檢查此封電子郵件的病毒。
www.avast.com


arrow
arrow
    全站熱搜
    創作者介紹
    創作者 大師兄 的頭像
    大師兄

    IT工程師數位筆記本

    大師兄 發表在 痞客邦 留言(0) 人氣()