桥接模式(Bridge)是一种结构型设计模式。它是用组合关系代替继承关系来实现,可以处理多维度变化的场景(https://blog.csdn.net/qq_31156277/article/details/80659537)。它的主要特点是把抽象(Abstraction)与行为实现(Implementation)分离开来,从而可以保持各部分的独立性以及应对他们的功能扩展。

桥接模式的UML图如下:

​​

​Implementor.m

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();

参考资料:

https://www.cnblogs.com/lixiuyu/p/5923160.html

https://blog.csdn.net/qq_31156277/article/details/80659537

最新文章

  1. CRL快速开发框架系列教程二(基于Lambda表达式查询)
  2. 15天玩转redis —— 第一篇 开始入手
  3. 【Python自动化运维之路Day4】
  4. 15.6.8-sql小技巧
  5. MyBatis环境搭建
  6. IOS GCD
  7. spring注入Properties
  8. Java学习笔记--Swing2D图形
  9. Android倒计时Button
  10. SSH三大框架的各自工作流程
  11. PHP 个人用到的琐碎代码记录
  12. GitHub的Repository权限将public转为private
  13. leecode第一百四十八题(排序链表)
  14. 简单JNI使用demo
  15. python-day79--知识回顾
  16. Redmine 安装指南
  17. Vue入门---事件与方法详解
  18. 雷林鹏分享:Ruby 类案例
  19. Python基础杂点
  20. SEO记录-1

热门文章

  1. 关于python中lambda 函数使用小结
  2. python操作mysql(增、删、改、查)
  3. struts2学习1
  4. Windows WoW64浅析
  5. OpenResty: 反向代理
  6. Spring Data学习中心
  7. sparksql基础知识二
  8. java 栈
  9. 一篇文章看懂mysql中varchar能存多少汉字、数字,以及varchar(100)和varchar(10)的区别
  10. 自动签发https证书工具 cert manager