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