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