Java中应用的的设计模式 - 结构模式
java.io.InputStreamReader(InputStream)?(returns a?Reader)java.io.OutputStreamWriter(OutputStream)?(returns a?Writer)javax.xml.bind.annotation.adapters.XmlAdapter#marshal()?and?#unmarshal()new LinkedHashMap(LinkedHashSet<K>, List<V>)?which returns an unmodifiable linked map which doesn't clone the items, but?uses?them. The?java.util.Collections#newSetFromMap()?and?singletonXXX()?methods however comes close.java.util.Map#putAll(Map)java.util.List#addAll(Collection)java.util.Set#addAll(Collection)java.nio.ByteBuffer#put(ByteBuffer)?(also on?CharBuffer,?ShortBuffer,?IntBuffer,LongBuffer,?FloatBuffer?and?DoubleBuffer)java.awt.Container#add(Component)?(practically all over Swing thus)java.io.InputStream,?OutputStream,?Reader?and?Writer?have a constructor taking an instance of same type.java.util.List,?Set?and?Map?have a constructor taking an instance of same type.java.util.Collections, the?checkedXXX(),?synchronizedXXX()?and?unmodifiableXXX()methods.javax.servlet.http.HttpServletRequestWrapper?and?HttpServletResponseWrapperjavax.faces.webapp.FacesServlet, it internally uses under each the abstract/interface typesServletContext,?LifeCycle,?ViewHandler,?NavigationHandler?and many more without that the enduser has to worry about it (which are however overrideable by injection).java.lang.Integer#valueOf(int)?(also on?Boolean,?Byte,?Character,?Short,?Long,?Floatand?Double)java.lang.reflect.Proxyjava.rmi.*, the whole API actually.The Wikipedia example is IMHO a bit poor, lazy loading has actually completely nothing to do with the proxy pattern at all.