Padrão de projeto dezesseis, modo ponte

Princípio de reutilização de composição / agregação CAPR , tente usar composição / agregação, tente não usar herança de classe

A agregação representa uma relação de propriedade fraca, o que reflete que o objeto A pode conter o objeto B, mas o objeto B não faz parte do objeto A; a composição é uma relação de propriedade forte, que reflete a relação estrita entre parte e o todo , parte e O ciclo de vida geral é o mesmo .

A vantagem do princípio de reutilização de composição / agregação é que priorizar a composição / agregação de objetos o ajudará a manter cada classe encapsulada e concentrada em uma única tarefa, de modo que a classe e a hierarquia de herança de classe permanecerão pequenas e é improvável que cresça em um gigante incontrolável .

O modo bridge Bridge separa a parte abstrata de sua parte de realização para que possam ser alteradas independentemente.

Não é que a classe abstrata esteja separada de suas classes derivadas, porque isso não faz nenhum sentido. Implementação refere-se à classe abstrata e suas classes derivadas usadas para implementar seus próprios objetos.

//实现类
abstract public class Implementor {
    
    
    public abstract void Operation();
}

public class ConcreteImplementorA extends Implementor{
    
    
    @Override
    public void Operation() {
    
    
        System.out.println("具体实现A的执行方法");
    }
}

public class ConcreteImplementorB extends Implementor{
    
    
    @Override
    public void Operation() {
    
    
        System.out.println("具体实现B的执行方法");
    }
}

//抽象类
public class Abstraction {
    
    
    protected Implementor implementor;

    public void SetImplementor(Implementor implementor) {
    
    
        this.implementor = implementor;
    }

    public void Operation() {
    
    
        implementor.Operation();
    }
}

public class RefinedAbstraction extends Abstraction {
    
    
    @Override
    public void Operation() {
    
    
        super.Operation();
    }

    public static void main(String[] args) {
    
    
        Abstraction abstraction = new Abstraction();

        abstraction.SetImplementor(new ConcreteImplementorA());
        abstraction.Operation();

        abstraction.SetImplementor(new ConcreteImplementorB());
        abstraction.Operation();
    }
}


Resultado:

具体实现A的执行方法
具体实现B的执行方法

Acho que você gosta

Origin blog.csdn.net/weixin_45401129/article/details/114629520
Recomendado
Clasificación