Java 核心類庫中的一些設計模式
阿新 • • 發佈:2018-12-23
今天訪問java 併發程式設計網,看到一個翻譯徵集令,併發程式設計網的作者從stackoverflow 網站上選取了一些經典問答,遂決定翻譯幾篇
翻譯系列文章:
3.在java中如何建立一個記憶體洩露譯文:
在Java 核心類庫中關於GOF設計模式的例子
問題: 我正在學習GOF的java 設計模式,我想找一些它們中鮮活的例子,在java 核心類庫中有哪些好的例子呢?
回答:你可以在維基百科上獲得許多設計模式概述。同時也會提到哪些是由GOF提出的。在這裡我總結一下,我儘可能多的從java SE 和java EE 的 API 中選取一些設計模式的實現
1.抽象工廠模式 (abstract factory)
4. 原型模式(prototype)
5.單例模式 (singleton)
6.介面卡模式(adapter) 7. 橋接模式(bridge)
None comes to mind yet. A fictive example would be new LinkedHashMap(LinkedHashSet<K>, List<V>)
which returns an unmodifiable linked map which doesn't clone the items, butuses
java.util.Collections#newSetFromMap()
and
singletonXXX()
methods however comes close.8.組合模式(composite)
9.裝飾模式(decorator)10.外觀模式(facade)
11.享元模式(flyweight)12.代理模式(proxy)
13. 職責鏈模式(chain of responsibility)14. 命令模式(command)
15. 解析器模式(interpreter)
16. 迭代器模式 (iterator)
18.備忘錄模式(memento)
java.util.Date
(the setter methods do that,Date
is internally represented by along
value)
20.狀態模式(state)
(controlled by
FacesServlet
, the behaviour is dependent on current phase (state) of JSF lifecycle)
21.策略模式(strategy)
javax.servlet.http.HttpServlet
, theservice()
and alldoXXX()
methods takeHttpServletRequest
andHttpServletResponse
and the implementor has to process them (and not to get hold of them as instance variables!).
22. 模板方法模式(template method)
原文: