Modo básico:
1. Padrão de interface: quando várias classes fornecem serviços semelhantes, por meio do padrão de interface, os serviços comuns fornecidos por diferentes classes de provedores de serviços podem ser abstraídos e declarados como uma interface independente. Isso permite que os objetos clientes usem diferentes classes de provedores de serviços de maneira contínua e sem quaisquer alterações.
2. Padrão de classe abstrata: pode ser usado para projetar uma estrutura que forneça uma implementação consistente das funções comuns de um conjunto de classes relacionadas. Ao contrário das interfaces, os métodos nas interfaces devem ser implementados em subclasses. Os métodos necessários podem ser implementados em classes abstratas, e as subclasses só precisam herdar, reduzindo assim implementações redundantes de métodos.
3. Padrão de método privado: alguns métodos só podem ser usados internamente por outros métodos ou classes internas no mesmo objeto. Este padrão recomenda projetar tais métodos como métodos privados.
4. Padrão de acesso: em um objeto, todas as variáveis de instância são declaradas privadas e métodos de acesso público são fornecidos para acessar o estado público do objeto, os clientes podem alterar um objeto de um estado para outro usando acessadores; objeto tem acesso direto às suas variáveis privadas. O javaBean em JSP usa esse padrão.
5. Gerenciador de dados constantes: Muito adequado para projetar um mecanismo de armazenamento eficaz para gerenciar dados constantes usados por diferentes objetos no aplicativo. Esse padrão sugere que os dados cujos valores são permanentes em um aplicativo devem ser armazenados em um objeto separado para acesso por outros objetos no aplicativo, em vez de serem autorizados a aparecer em objetos diferentes. Esse tipo de separação fornece um repositório centralizado e fácil de manter para os dados constantes em seu aplicativo.
6. Objetos imutáveis: definem todas as variáveis de instância no construtor e não fornecem nenhum outro método que possa alterar o estado do objeto. Declarar a classe como um tipo fanal para evitar a possibilidade de alterar o estado substituindo os métodos da classe; Todas as variáveis de instância são escritas como tipo fanal, de modo que só podem ser atribuídas por meio do método construtor se alguma das variáveis de instância contiver uma referência a um objeto, então o método get correspondente inggai retornará uma cópia do objeto em vez de realmente o; objeto em si. O mecanismo acima pode garantir a segurança do thread e eliminar automaticamente todos os problemas relacionados ao acesso simultâneo.
7. Monitor: Ele adquire um bloqueio em tal objeto para garantir que apenas um thread tenha permissão para executar qualquer método do objeto por vez. Isso pode ser feito em Java usando a palavra-chave sincronizada na declaração do método do objeto.
Modo de criação:
Função: Lida com uma das tarefas mais comumente executadas em aplicações OO - a criação de objetos suporta o uso de mecanismos restritos e consistentes para criar objetos; A geração do acoplamento.
1. Método de fábrica: se o objeto cliente não souber qual classe instanciar, ele poderá usar o método de fábrica para criar uma instância da classe correspondente na hierarquia de classes ou grupo de classes relacionado. Os métodos de fábrica podem ser projetados como parte do próprio cliente ou podem ser projetados em classes individuais. Dentre eles, a classe que contém o método fábrica ou qualquer uma de suas subclasses determina qual classe será selecionada e como instanciá-la.
2. Singleton: Fornece um mecanismo de criação de objeto restrito para garantir que haja apenas uma instância de uma classe especificada.
3. Abstract Factory: Permite a criação de instâncias de classes dentro de um conjunto de classes relacionadas sem que o objeto cliente especifique a classe concreta real a ser instanciada.
4. Protótipo: Fornece uma maneira simples de criar objetos, ou seja, copiar objetos de objetos existentes.
5. Gerador: Permite a criação de objetos complexos, pode fornecer apenas as informações de tipo e conteúdo do objeto e torna os detalhes sobre a criação do objeto transparentes para o cliente. Esta abordagem permite que o mesmo processo de construção gere diferentes representações de objetos.