23种设计模式在JDK中的例子

:D
抽象工厂 (类型recognizeable /界面造物方法返回一个抽象)

java.util.Calendar的#的getInstance()
java.util.Arrays#asList()
java.util.ResourceBundle#的getBundle()
#openConnection的java.net.URL()
java.sql.DriverManager来#的getConnection()
java.sql.Connection来#的createStatement()
java.sql.Statement#的executeQuery()
java.text.NumberFormat#的getInstance()
java.lang.management.ManagementFactory (所有 的getXXX() 方法)
java.nio.charset.Charset#的forName()
javax.xml.parsers.DocumentBuilderFactory#的newInstance()
javax.xml.transform.TransformerFactory#的newInstance()
javax.xml.xpath.XPathFactory#的newInstance()
生成器 (本身recognizeable造物的实例方法返回)

java.lang.StringBuilder#追加() ( 不同步)
java.lang.StringBuffer#追加() ( 同步)
java.nio.ByteBuffer#把() ( 也 CharBuffer的 , ShortBuffer , IntBuffer , LongBuffer , FloatBuffer 和 DoubleBuffer )
javax.swing.GroupLayout.Group#addComponent()
实现所有 java.lang.Appendable
工厂方法 (类型recognizeable造物的具体办法由返回)

java.lang.Object的#toString()方法 (子类重载的一切)
java.lang.Class的#的newInstance()
为java.lang.Integer#方法valueOf(String) ( 也 布尔 , 字节 , 字符 , 短 , 长 , 浮法 和 双 )
#的java.lang.Class的forName()
java.lang.reflect.Array#的newInstance()
java.lang.reflect.Constructor#的newInstance()
原型 (一recognizeable方法返回由造物 不同 属性相同的实例本身带)

java.lang.Object的#clone()方法 (类必须实现 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#元帅() 和 #解组()
大桥 (一实例的recognizeable造物服用方法 不同的 抽象/接口类型和返回一个类型实施自己的抽象/接口,它 代表/使用 给定的实例)

谁也没有想到呢。 一个虚构的例子是 新LinkedHashMap的(LinkedHashSet的,列表) 返回一个不可修改的相关地图,不克隆项目,但 使用 它们。 该 java.util.Collections的#newSetFromMap() 和 singletonXXX() 方法,但是很接近。
复合材料 (附recognizeable实例由行为服用方法 相同的 抽象/接口类型)

java.util.Map的#的putAll(地图)
java.util.List的#addAll(征收)
为java.util.Set#addAll(征收)
java.nio.ByteBuffer#放(ByteBuffer的) (也 CharBuffer的 , ShortBuffer , IntBuffer , LongBuffer , FloatBuffer 和 DoubleBuffer )
java.awt.Container#加入(组件) (几乎所有的Swing从而超过)
装饰 (附recognizeable一个实例造物服用方法 相同的 抽象/接口类型)

子类的所有 java.io.InputStream , OutputStream的 , 读者 和 作家 有一个构造函数以一个相同类型的实例。
实现几乎所有 的java.util.List , 设置 和 地图 具有构造纵观同类型的实例。
java.util.Collections中 的 checkedXXX() , synchronizedXXX() 和 unmodifiableXXX() 方法。
javax.servlet.http.HttpServletRequestWrapper 和 HttpServletResponseWrapper
门面 (使用情况的recognizeable由国内的行为方式 不同的 独立抽象/接口类型)

javax.faces.context.FacesContext ,它在内部采用了一些其他人的抽象/接口类型 LifeCycle的 , ViewHandler中 , NavigationHandler 和许多)更多的最终用户无需担心它大约有(其中可重载不过,这样的注射。
javax.faces.context.ExternalContext ,它在内部使用 的ServletContext , HttpSession中 , 的HttpServletRequest , HttpServletResponse的 ,等等
享元 (理念recognizeable multiton“的造物方法返回一个缓存的实例,有点而”)

为java.lang.Integer#方法valueOf(int)的 (还 布尔 , 字节 , 字符 , 短 , 长 , 浮法 和 双 )
代理 (方法recognizeable的造物,它返回一个类型的实现给定的抽象/接口而这反过来又 代表/使用 一个 不同 类型的实现给定的抽象/接口)

java.lang.reflect.Proxy
的java.rmi .* ,整个API的实际。
维基百科的例子是恕我直言有点差,延迟加载实际上已完全无关,在所有代理的模式。

行为模式

责任链 (在recognizeable相同的方法由行为方法,(间接调用), 另一个 执行 同样的 抽象/接口类型的队列中)

java.util.logging.Logger的#日志()
javax.servlet.Filter接口#的doFilter()
命令 (一recognizeable执行由行为方式在一个抽象/接口类型的其中一个方法中调用 不同的 抽象/接口类型已经 封装 了其创建命令执行期间)

实现所有 java.lang.Runnable的
实现所有 javax.swing.Action

你可能感兴趣的:(设计模式,设计模式,JDK,Java,Swing,SQL)