Design Pattern in JDK

Behavioral(行为模式)

Chain of responsibility:
  • java.util.logging.Logger#log()
  • javax.servlet.Filter#doFilter()
Observer:
  • java.util.EventListener
  • javax.servlet.http.HttpSessionBindingListener
  • javax.servlet.http.HttpSessionAttributeListener
State:
  • java.util.Iterator
Strategy:
  • java.util.Comparator#compare()
  • javax.servlet.http.HttpServlet
  • javax.servlet.Filter#doFilter()
Template:
  • java.util.Collections#sort()
  • java.io.InputStream#skip()
  • java.io.InputStream#read()
Command:
  • java.lang.Runnable
Interpreter:
  • java.util.Pattern
  • java.text.Format
Iterator:
  • java.util.Iterator
  • java.util.Enumeration
Mediator:
  • java.util.Timer
  • java.util.concurrent.Executor#execute()
  • java.util.concurrent.ExecutorService#submit()
  • java.lang.reflect.Method#invoke()
Memento:
  • java.util.Date
  • java.io.Serializable
Null Object:
  • java.util.Collections#emptyList()
  • java.util.Collections#emptyMap()
  • java.util.Collections#emptySet()
Visitor:
  • javax.lang.model.element.Element 和javax.lang.model.element.ElementVisitor
  • javax.lang.model.type.TypeMirror 和javax.lang.model.type.TypeVisitor
Creational(创建模式)
Singleton:
  • java.lang.Runtime#getRuntime()
Factory:
  • java.lang.Proxy#newProxyInstance()
  • java.lang.Object#toString()
  • java.lang.Class#newInstance()
  • java.lang.Class#forName()
Prototype:
  • java.lang.Object#clone()
  • java.lang.Cloneable
Abstract factory:
  • java.util.Calendar#getInstance()
  • java.util.Arrays#asList()
Builder:
  • java.lang.StringBuilder#append()
  • java.lang.StringBuffer#append()
  • java.sql.PreparedStatement
Structural(结构模式)
Decorator:
  • java.io.BufferedInputStream(InputStream)
  • java.io.DataInputStream(InputStream)
  • java.io.BufferedOutputStream(OutputStream)
Proxy:
  • java.lang.reflect.Proxy
  • RMI
Bridge:
  • AWT (提供了抽象层映射于实际的操作系统)
  • JDBC
Composite:
  • java.util.Map#putAll(Map)
  • java.util.List#addAll(Collection)
  • java.util.Set#addAll(Collection)
Facade:
  • java.lang.Class
Flyweight:
  • java.lang.Integer#valueOf(int)
  • java.lang.Boolean#valueOf(boolean)
  • java.lang.Byte#valueOf(byte)
  • java.lang.Character#valueOf(char)

Adapter:

  • java.util.Arrays#asList()
  • java.io.InputStreamReader(InputStream)
  • java.io.OutputStreamWriter(OutputStream)

posted on 2018-11-21 15:10  xiaowater  阅读(77)  评论(0)    收藏  举报

导航