1. 程式人生 > >Java 核心類庫中的一些設計模式

Java 核心類庫中的一些設計模式

今天訪問java 併發程式設計網,看到一個翻譯徵集令,併發程式設計網的作者從stackoverflow 網站上選取了一些經典問答,遂決定翻譯幾篇

翻譯系列文章:

3.在java中如何建立一個記憶體洩露

譯文:

在Java 核心類庫中關於GOF設計模式的例子

問題:   我正在學習GOF的java 設計模式,我想找一些它們中鮮活的例子,在java 核心類庫中有哪些好的例子呢?

回答:你可以在維基百科上獲得許多設計模式概述。同時也會提到哪些是由GOF提出的。在這裡我總結一下,我儘可能多的從java SE 和java EE 的 API 中選取一些設計模式的實現

1.抽象工廠模式 (abstract factory)

2.生成器模式(builder) 3. 工廠方法模式(factory method)
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

them. Thejava.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)

17. 中介者模式 (mediator)

18.備忘錄模式(memento)

  • java.util.Date (the setter methods do that,Date is internally represented by along value)
19. 觀察者模式(observer)
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)

23. 訪問者模式(visitor)

原文: