Visão geral
Modo Bridge Um modelo estrutural, com o qual lida principalmente: devido às necessidades reais, uma classe tem duas ou mais alterações dimensionais. Se a herança for usada apenas, essa necessidade não será alcançada ou o design ficará bastante inchado.
O modo Bridge é para abstrair as partes em mudança, separar as partes alteradas da classe principal, separando completamente as alterações em várias dimensões. Finalmente, uma classe de gerenciamento é fornecida para combinar mudanças em diferentes dimensões, e essa combinação é usada para atender às necessidades dos negócios.
Diagrama de estrutura de uml
Exemplo de código
Entrevista do pacote; implementador de interface {void OperationImpl ();} classe abstrata Resumo {implementador protegido implementador; Resumo público (implementador implementador) {this.implementor = implementor; } public void operação () {implementor.operationImpl (); }} classe concreteImplementora implementa o implementador {@Override public void OperationImpl () {System.out.println ("Implementação específica A"); }} classe concreteImplementorb implementa o implementador {@Override public void OperationImpl () {System.out.println ("Implementação específica B"); }} classe refinedabstraction estende abstrato {public refinedabstration (implementor implementor) {super (implementor); } public void OtherOperation () {System.out.println ("outras operações"); }} public class Mantest {public static void main (string arg []) {implementor implementor = new concreteImplementora (); Abstração refinadaBStraction = new Refinedabstration (implementador); abstração.operation (); abstração.Oteroperation (); }}Use cenários
1. Se você não deseja adotar uma relação de ligação fixa nas peças de abstração e implementação, poderá usar o modo Bridge para separar as peças de abstração e implementação e definir dinamicamente as implementações específicas necessárias para a abstração durante a operação do programa e também pode alternar dinamicamente as implementações específicas.
2. Se a parte abstrata e a parte da implementação deverão ser expandidas, um modo de ponte pode ser usado para que a parte abstrata e a parte de implementação possam ser alteradas independentemente, para que a expansão possa ser expandida de maneira flexível separadamente, em vez de mexer juntas. Um lado da expansão pode afetar o outro lado.
3. Se você deseja implementar modificações parciais, isso não afetará o cliente. Você pode usar o modo Bridge. O cliente está executando uma interface abstrata. As modificações do parcial podem ser independentes da parte abstrata e não afetarão o cliente. Também pode ser considerado transparente para o cliente.
4. Se um esquema de implementação herdado for adotado, muitas subclasses serão geradas. Para este caso, você pode considerar o uso de um modo de ponte para analisar os motivos das alterações nas funções para verificar se elas podem ser separadas em diferentes dimensões e separá -las pelo modo Bridge para reduzir o número de subclasses.
Se um sistema precisar adicionar mais flexibilidade entre os papéis abstratos e concretizados construídos, evite criar conexões estáticas entre os dois níveis.
Os caracteres abstratos e os caracteres concretos devem ser capazes de ser subclassificados. Nesse caso, o padrão da ponte pode combinar flexibilidade diferentes papéis abstratos e concretos e expandir independentemente.
Quaisquer alterações no design exigem que a função de implementação não afete o cliente ou que as alterações da função de implementação sejam completamente transparentes para o cliente.
O exposto acima é todo o conteúdo deste artigo. Espero que seja útil para o aprendizado de todos e espero que todos apoiem mais o wulin.com.