Matlab桥接模式
桥接模式(Bridge)是一种结构型设计模式。它是用组合关系代替继承关系来实现,可以处理多维度变化的场景(https://blog.csdn.net/qq_31156277/article/details/80659537)。它的主要特点是把抽象(Abstraction)与行为实现(Implementation)分离开来,从而可以保持各部分的独立性以及应对他们的功能扩展。
桥接模式的UML图如下:
classdef Implementor < handle methods(Abstract) operation(~); end end
ConcreateImplementorA.m
classdef ConcreateImplementorA < Implementor methods function operation(~) disp("this is concreteImplementorA's operation..."); end end end
ConcreateImplementorB.m
classdef ConcreateImplementorB < Implementor methods function operation(~) disp("this is concreteImplementorA's operation..."); end end end
Abstraction.m
classdef Abstraction < handle properties implementor end methods function imp = getImplementor(obj) imp = obj.implementor; end function setImplementor(obj,imp) obj.implementor = imp; end function operation(obj) obj.implementor.operation(); end end end
RefinedAbstraction.m
classdef RefinedAbstraction < Abstraction methods function operation(obj) disp("this is RefinedAbstraction...") operation@Abstraction(obj); end end end
测试代码:
abstraction = RefinedAbstraction(); abstraction.setImplementor(ConcreateImplementorA()); abstraction.operation(); abstraction.setImplementor(ConcreateImplementorB()); abstraction.operation();
参考资料: