Respostas:
Você pode encontrar uma visão geral de muitos padrões de design na Wikipedia . Também menciona quais padrões são mencionados pelo GoF. Vou resumir aqui e tentar atribuir o maior número possível de implementações de padrões, encontradas nas APIs Java SE e Java EE.
javax.xml.parsers.DocumentBuilderFactory#newInstance()javax.xml.transform.TransformerFactory#newInstance()javax.xml.xpath.XPathFactory#newInstance()java.lang.StringBuilder#append() (não sincronizado)java.lang.StringBuffer#append() (sincronizado)java.nio.ByteBuffer#put()(também em CharBuffer, ShortBuffer, IntBuffer, LongBuffer, FloatBuffere DoubleBuffer)javax.swing.GroupLayout.Group#addComponent()java.lang.Appendablejava.util.stream.Stream.Builderjava.util.Calendar#getInstance()java.util.ResourceBundle#getBundle()java.text.NumberFormat#getInstance()java.nio.charset.Charset#forName()java.net.URLStreamHandlerFactory#createURLStreamHandler(String) (Retorna objeto singleton por protocolo)java.util.EnumSet#of()javax.xml.bind.JAXBContext#createMarshaller() e outros métodos similaresjava.lang.Object#clone()(a classe precisa implementar java.lang.Cloneable)java.util.Arrays#asList()java.util.Collections#list()java.util.Collections#enumeration()java.io.InputStreamReader(InputStream)(retorna a Reader)java.io.OutputStreamWriter(OutputStream)(retorna a Writer)javax.xml.bind.annotation.adapters.XmlAdapter#marshal() e #unmarshal()new LinkedHashMap(LinkedHashSet<K>, List<V>)que retorna um mapa vinculado não modificável que não clona os itens, mas os utiliza . Os métodos java.util.Collections#newSetFromMap()e singletonXXX()no entanto se aproximam.java.awt.Container#add(Component) (praticamente em todo o balanço assim)javax.faces.component.UIComponent#getChildren() (praticamente em toda a interface do usuário JSF, portanto)java.io.InputStream, OutputStream, Readere Writerter um construtor de tomar uma instância do mesmo tipo.java.util.Collections, the checkedXXX(), synchronizedXXX()e unmodifiableXXX()métodos.javax.servlet.http.HttpServletRequestWrapper e HttpServletResponseWrapperjavax.swing.JScrollPanejavax.faces.context.FacesContext, Ele usa internamente entre outros, os tipos de interface / resumo LifeCycle, ViewHandler, NavigationHandlere muitos mais, sem que o usuário final tem que se preocupar com ele (que são, no entanto overrideable por injeção).javax.faces.context.ExternalContext, Que usa internamente ServletContext, HttpSession, HttpServletRequest, HttpServletResponse, etc.java.lang.Integer#valueOf(int)(também em Boolean, Byte, Character, Short, Longe BigDecimal)java.lang.reflect.Proxyjava.rmi.*javax.ejb.EJB( explicação aqui )javax.inject.Inject( explicação aqui )javax.persistence.PersistenceContextjava.lang.Runnablejavax.swing.Actionjava.util.Patternjava.text.Normalizerjava.text.Formatjavax.el.ELResolverjava.util.Iterator(assim, entre outros também java.util.Scanner!).java.util.Enumerationjava.util.Timer(todos os scheduleXXX()métodos)java.util.concurrent.Executor#execute()java.util.concurrent.ExecutorService(a invokeXXX()e submit()métodos)java.util.concurrent.ScheduledExecutorService(todos os scheduleXXX()métodos)java.lang.reflect.Method#invoke()java.util.Date(os métodos setter fazem isso, Datesão representados internamente por um longvalor)java.io.Serializablejavax.faces.component.StateHolderjava.util.Observer/ java.util.Observable(raramente usado no mundo real)java.util.EventListener(praticamente em todo Swing, portanto)javax.servlet.http.HttpSessionBindingListenerjavax.servlet.http.HttpSessionAttributeListenerjavax.faces.event.PhaseListenerjavax.faces.lifecycle.LifeCycle#execute()(controlado por FacesServlet, o comportamento depende da fase atual (estado) do ciclo de vida do JSF)java.util.Comparator#compare(), executado por entre outros Collections#sort().javax.servlet.http.HttpServlet, o service()e todos os doXXX()métodos tomam HttpServletRequeste HttpServletResponseo implementador precisa processá-los (e não se apossar deles como variáveis de instância!).javax.servlet.Filter#doFilter()java.io.InputStream, java.io.OutputStream, java.io.Readere java.io.Writer.java.util.AbstractList, java.util.AbstractSete java.util.AbstractMap.javax.servlet.http.HttpServlet, todos os doXXX()métodos, por padrão, enviam um erro HTTP 405 "Método não permitido" para a resposta. Você é livre para implementar nenhum ou nenhum deles.Observable, Observer)ContainerAdapter, ComponentAdapter, FocusAdapter, KeyAdapter, MouseAdaptersão não adaptadores; eles são na verdade objetos nulos. Má escolha de nomes pelo sol.BufferedInputStreampode decorar outros fluxos, como FilterInputStream)java.lang.Runtime#getRuntime() é SingletonButtonGroup para padrão MediadorAction, AbstractActionpode ser usado para diferentes representações visuais para executar o mesmo código -> Padrão de comandoe muito mais eu acho
clone()método pode ser usado para esse fim.java.awte java.swingpacotes. Na verdade, eles compartilham atributos intrínsecos quase idênticos e atributos extrínsecos são componentes diferentes da interface do usuário que eles apresentam no formato da interface do usuário.
O RMI é baseado em Proxy.
Deve ser possível citar um para a maioria dos 23 padrões no GoF:
Não consigo pensar em exemplos em Java para 10 dos 23, mas vou ver se posso fazer melhor amanhã. É para isso que serve a edição.
Embora eu esteja meio que com um relógio quebrado, a API Java XML usa muito o Factory. Quero dizer, basta olhar para isso:
Document doc = DocumentBuilderFactory.newInstance().newDocumentBuilder().parse(source);
String title = XPathFactory.newInstance().newXPath().evaluate("//title", doc);
...e assim por diante.
Além disso, vários buffers (StringBuffer, ByteBuffer, StringBuilder) usam o Builder.
java.util.Collection # Iterator é um bom exemplo de um método de fábrica. Dependendo da subclasse concreta de Collection usada, ele criará uma implementação de Iterator. Como a superclasse Factory (Collection) e o Iterator criados são interfaces, às vezes é confundido com AbstractFactory. A maioria dos exemplos de AbstractFactory na resposta aceita (BalusC) são exemplos de Factory , uma versão simplificada do Factory Method, que não faz parte dos padrões GoF originais. No Facory, a hierarquia da classe Factory é reduzida e a fábrica usa outros meios para escolher o produto a ser devolvido.
Uma fábrica abstrata possui vários métodos de fábrica, cada um criando um produto diferente. Os produtos produzidos por uma fábrica devem ser usados juntos (é melhor que a impressora e os cartuchos sejam da mesma fábrica (abstrata)). Como mencionado nas respostas acima, as famílias de componentes da GUI do AWT, que diferem de plataforma para plataforma, são um exemplo disso (embora sua implementação seja diferente da estrutura descrita em Gof).
javax.lang.model.elementdefine visitantes;) Não tenho certeza se sãodoXXXoudoFilternão "estratégias".