詳列JDK中的設計模式(一)建立型

1.單例模式(Singleton):只存在一個實例而對外提供公開的訪問點java

  (1)NumnerFormat只有一個實例sql

  (2)Runtime(JVM運行於系統之上,由Runtime能夠獲取系統的信息):而Runtime是單例的,餓漢式設計模式

0.靜態工廠(Factory):根據傳入方法的參數來構造實例,對外隱藏建立實例的細節ui

  (靜態工廠不屬於23種設計模式,但此處列舉以便理解)spa

  (1)Integer.valueOf() Integer類中根據普通類型的值來建立包裝類Integer設計

  (2)Class.forName() 反射中根據全限定類名來建立實例orm

2.工廠方法模式(Factory Method):抽象工廠,抽象產品實現鬆耦合,實現類決定產出什麼產品blog

  Collection.iterator 集合Collection實現了Iteatorable接口,其內部有一個內部迭代器類,可經過iterator()方法獲取到迭代器(這一方法正是那個工廠方法)接口

  集合Collection表明工廠,迭代器Iterator表明產品原型

  Collection表明抽象工廠接口,生產產品的方法爲Iterator(),返回抽象的產品接口 ,而具體的集合類實現此接口(具體的List,具體的Set等實體類),生產的Iterator是產品接口的實現類具體Iterator生產什麼具體的產品由實現什麼具體工廠

 

 

 3.抽象工廠模式(Abstract Factory):抽象工廠接口生產的產品有多種

(1)java.sql包中Connection建立Statement

 JDBC的使用中,加載驅動後使用DriverManager.gerConnection獲取的是Connection的實例,Connection是鏈接接口,然後由Connection建立用以執行不一樣sql語句的Statement,預編譯PreparedStatement和用以執行存儲過程的CallableStatement.這時Connection至關於抽象工廠接口,可生產多種抽象產品。

  Connection就成爲了抽象工廠,而Statement,PreparedStatement,CallableStatemen是多種抽象產品,抽象工廠可生產多種抽象產品,而對應的實例工廠MysqlCollectionImpl生產實力產品Impl

 

 

 4.建造者模式(Builder):構造一個實例須要大量的工做,因此將構建邏輯提到了單獨的類中

  (1)解析XML時構建總的document須要遍歷全部節點,包括註釋文本等  ,建造過程繁瑣,就就將它分離出來

 

 

5.原型模式(Prototype):克隆,深拷貝,淺拷貝

  (1)Object.clone / Cloneable

  

相關文章
相關標籤/搜索