Latest web development tutorials

Introdução ao Design Patterns

padrões de projeto (Design Pattern) representa uma melhor prática, muitas vezes é adotada por desenvolvedores de software orientado a objetos experientes. padrões de projeto são soluções para problemas comuns de desenvolvedores de software no processo de desenvolvimento de software no rosto. Estas soluções são muitos desenvolvedores de software através de um longo período de tentativa e erro resumiu.

padrões de projeto são definidas para ser usado repetidamente, a maioria das pessoas sabe, depois de catalogação, resumo código de experiência em design. Use padrões de projeto para reutilizar o código, tornar o código mais fácil de entender os outros, para garantir a confiabilidade do código. Sem dúvida, padrões de projeto têm sobre os outros no sistema são win-win, padrões de projeto torna o código compilado de engenharia real, padrões de projeto é a pedra angular da engenharia de software, como a construção de uma pedra de tijolo mesma. Projeto uso racional dos padrões de design pode ser a solução perfeita para muitos problemas, cada modo correspondente ao princípio da realidade têm correspondentes, cada modo descreve um problema constantemente recorrente em torno de nós, assim como o problema solução de core, que é amplamente utilizado padrões de projeto que pode ser a razão.

Qual é o GOF (Gang of Four, Gang of Four ortografia)?

1994 por Erich Gamma, Richard Helm, Ralph Johnson e John Vlissides quatro co-publicou um livro chamadoDesign Patterns - Elementos de reutilizável Objeto Software Orientado ( tradução chinesa: Padrões de Projeto - Software Reutilizável Orientado a Objetos elemento)o livro que mencionado pela primeira vez o conceito de padrões de projeto de desenvolvimento de software.

Quatro autores coletivamenteGOF (Gang of Four, ortografia Gang of Four).Eles propuseram modelo de design é baseado principalmente em princípios de design orientado a objeto.

  • Ao invés de interfaces de programação para programação.
  • composição de objetos prioridade ao invés de herança.

O uso de padrões de projeto

Design Patterns no desenvolvimento de software para dois propósitos principais.

desenvolvedores da plataforma comum

Design teste fornece um sistema terminologia padrão, e, em particular, para uma cena específica. Por exemplo, um padrão de design único implica o uso de um único objeto, de modo que todos estão familiarizados com os desenvolvedores de padrão de design singleton pode usar um único objeto, e pode dizer uns aos outros desta forma, o programa usa o padrão Singleton.

melhor Prática

padrões de projeto evoluíram ao longo de um longo período de tempo, eles fornecem as melhores soluções para os problemas comuns enfrentados pelo processo de desenvolvimento de software. Estas modo de aprendizagem ajuda desenvolvedor inexperiente com uma maneira rápida e fácil de aprender o design de software.

Tipos de padrões de projeto

De acordo com o livro de referência de padrões de projetoDesign Patterns - Elements of Reusable Object- Oriented Software ( tradução chinesa: Design Patterns - elementos de software orientados a objetos reutilizáveis)mencionados, um total de 23 padrões de projeto. Esses padrões podem ser divididos em três categorias: criar esquema (padrões de criação), modelo estrutural (Padrões Estruturais), o tipo de modelo (padrões comportamentais). Claro, vamos discutir um outro tipo de padrões de projeto: padrões de projeto J2EE.

序号模式 & 描述包括
1创建型模式
这些设计模式提供了一种在创建对象的同时隐藏创建逻辑的方式,而不是使用新的运算符直接实例化对象。这使得程序在判断针对某个给定实例需要创建哪些对象时更加灵活。
  • 工厂模式(Factory Pattern)
  • 抽象工厂模式(Abstract Factory Pattern)
  • 单例模式(Singleton Pattern)
  • 建造者模式(Builder Pattern)
  • 原型模式(Prototype Pattern)
2结构型模式
这些设计模式关注类和对象的组合。继承的概念被用来组合接口和定义组合对象获得新功能的方式。
  • 适配器模式(Adapter Pattern)
  • 桥接模式(Bridge Pattern)
  • 过滤器模式(Filter、Criteria Pattern)
  • 组合模式(Composite Pattern)
  • 装饰器模式(Decorator Pattern)
  • 外观模式(Facade Pattern)
  • 享元模式(Flyweight Pattern)
  • 代理模式(Proxy Pattern)
3行为型模式
这些设计模式特别关注对象之间的通信。
  • 责任链模式(Chain of Responsibility Pattern)
  • 命令模式(Command Pattern)
  • 解释器模式(Interpreter Pattern)
  • 迭代器模式(Iterator Pattern)
  • 中介者模式(Mediator Pattern)
  • 备忘录模式(Memento Pattern)
  • 观察者模式(Observer Pattern)
  • 状态模式(State Pattern)
  • 空对象模式(Null Object Pattern)
  • 策略模式(Strategy Pattern)
  • 模板模式(Template Pattern)
  • 访问者模式(Visitor Pattern)
4J2EE 模式
这些设计模式特别关注表示层。这些模式是由 Sun Java Center 鉴定的。
  • MVC 模式(MVC Pattern)
  • 业务代表模式(Business Delegate Pattern)
  • 组合实体模式(Composite Entity Pattern)
  • 数据访问对象模式(Data Access Object Pattern)
  • 前端控制器模式(Front Controller Pattern)
  • 拦截过滤器模式(Intercepting Filter Pattern)
  • 服务定位器模式(Service Locator Pattern)
  • 传输对象模式(Transfer Object Pattern)

Aqui com uma imagem inteira para descrever a relação entre os padrões de design:

设计模式之间的关系

Seis princípios de padrões de projeto

1. Abra Princípio Fechado (Open Fechar Princípio)

Abrir Princípio Fechado significa: aberto para extensão, mas fechado para modificação. Quando o programa precisa se expandir, não modificar o código original para alcançar o efeito de um hot-swappable. Em suma, a fim de tornar a escalabilidade do programa, facilidade de manutenção e upgrades. Quer conseguir este efeito, precisamos usar interfaces e classes abstratas, design de concreto mais tarde vamos mencionar neste ponto.

2, princípio da substituição Richter (substituição de Liskov)

princípio da substituição Richter é um dos princípios básicos de design orientado a objeto. princípio da substituição Richter que onde qualquer classe base pode aparecer, subclasses será capaz de aparecer. LSP é herdada pedra angular única multiplexados quando a classe derivada pode substituir a classe base e unidade de software funcional não é afetado, a classe base pode realmente ser reutilizados, e a classe derivada pode ser a base da base de classe adiciona nova comportamento. princípio da substituição Richter é o princípio da complementaridade de abertura e fechamento. A etapa chave é a realização do princípio da abertura e fechamento de abstração, herança e classe base e subclasse da realização concreta abstrata, então princípio da substituição Richter está a poucos passos abstratas concretas para implementar a especificação.

3. princípio de inversão de dependência (Dependência Inversion Principle)

Este princípio é a base do princípio de abertura e fechamento, o conteúdo específico: Para interfaces de programação, de acordo com o resumo não depende específico.

4, Interface Segregação Princípio (Interface Segregação Princípio)

Significado deste princípio é: a utilização de múltiplas interfaces isolado é melhor do que utilizando uma interface única. Ele também tem outro significado: para reduzir o grau de acoplamento entre as classes. Assim, o fato de que os padrões de design a partir de arquitetura de software em grande escala, fácil de atualizar e manter o design de software, o que enfatiza a redução da dependência, reduzindo o acoplamento.

5, Demeter, também conhecido como os princípios menos conhecidos (Demeter Princípio)

Mínimo sabe meios principais: uma entidade deve interagir tão pouco quanto possível entre outras entidades, tornando o sistema módulos de função relativamente independentes.

6, princípios síntese de multiplexação (Composite Reuse Princípio)

Síntese multiplexação refere-se ao princípio: tanto quanto possível o uso de forma sintética / polimérico, em vez de usar herança.