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的执行方法