你可以在维基百科上发现了很多设计模式的概述。它还提到提到了GoF模式。我将在这里总结,试图尽可能分配模式实现发现在Java SE和Java EE API的。
创建型模式
抽象工厂(recognizeable创造性方法返回一个文摘/接口类型)
java.util.Calendar # getInstance()
java.util.Arrays # asList()
java.util.ResourceBundle # getBundle()
java.net.URL # openConnection()
java.sql.DriverManager # getConnection()
java.sql.Connection # createStatement()
java.sql.Statement # executeQuery()
java.text.NumberFormat # getInstance()
java.lang.management.ManagementFactory(所有getXXX()方法)
charset # forName()
javax.xml.parsers.DocumentBuilderFactory # newInstance()
javax.xml.transform.TransformerFactory # newInstance()
javax.xml.xpath.XPathFactory # newInstance()
构建器(recognizeable创造性方法返回实例本身)
java.lang.StringBuilder # append()(同步)
java.lang.StringBuffer # append()(同步)
java.nio.ByteBuffer # put()(同样在CharBuffer,ShortBuffer、IntBuffer LongBuffer,FloatBuffer和DoubleBuffer)
javax.swing.GroupLayout.Group # addComponent()
所有的实现java.lang.Appendable
工厂方法(recognizeable创造性方法返回一个具体类型)
java . lang . object # toString()(overrideable所有子类)
. lang . class # newInstance()
java.lang.Integer #返回对象的值(字符串)(还在布尔、字节、字符,短,长,浮子和双)
. lang . class # forName()
java.lang.reflect.Array # newInstance()
java.lang.reflect.Constructor # newInstance()
原型(recognizeable创造性的方法返回一个不同的实例本身具有相同的属性)
java . lang . object #克隆()(类必须实现java.lang.Cloneable)
单例(recognizeable创造性方法返回相同的实例本身(通常)每次)
java.lang.Runtime # getRuntime()
java.awt.Desktop # getDesktop()
结构模式
适配器(recognizeable创造性方法采取不同的抽象/接口类型的一个实例,返回自己的/另一个抽象接口的一个实现类型装饰/覆盖给定的实例)
java.io.InputStreamReader(InputStream)(返回一个读者)
java.io.OutputStreamWriter(OutputStream)(返回一个作家)
javax.xml.bind.annotation.adapters.XmlAdapter #元帅()和# unmarshal()
桥(recognizeable创造性方法采取不同的抽象/接口类型的一个实例,返回自己的抽象/接口的一个实现类型代表/使用给定的实例)
还没有想到。一个虚构的例子将新的LinkedHashMap(LinkedHashSet < K >、< V >)列表,返回一个不可修改的地图而不克隆物品,但使用它们。java.util.Collections # newSetFromMap()和singletonXXX然而接近()方法。
复合(recognizeable行为方法采取相同的抽象/接口类型的一个实例)
java.util.Map # putAll(地图)
并不知道# addAll(集合)
java.util.Set # addAll(集合)
java.nio.ByteBuffer #(ByteBuffer)(同样在CharBuffer,ShortBuffer、IntBuffer LongBuffer,FloatBuffer和DoubleBuffer)
java.awt.Container # add(组件)(几乎所有Swing因此)
装饰(recognizeable创造性方法采取相同的抽象/接口类型的一个实例)
所有的子类. io .InputStream、OutputStream、读者和作家有一个构造函数在相同类型的一个实例。
几乎所有java.util的实现。列表,设置地图构造函数做同一类型的一个实例。
java.util。集合,checkedXXX(),synchronizedXXX()和unmodifiableXXX()方法。
javax.servlet.http.HttpServletRequestWrapper和HttpServletResponseWrapper
外观(recognizeable行为方法,在内部使用不同的独立抽象/接口类型的实例)
javax.faces.context。FacesContext,它在内部使用等抽象/生命周期接口类型,ViewHandler,NavigationHandler和更多的终端用户必须担心它(然而overrideable通过注射)。
javax.faces.context。ServletContext ExternalContext,它在内部使用、字体大小:14 px;垂直-