首页/文章/ 详情

FEM之在求解器中使用设计模式(5)---Adaptor模式

3年前浏览1498

在开发求解器过程中,经常会碰到一种情况:需要换一种线性方程组求解工具,比如最开始使用入门上手的Eigen,矩阵规模上来之后需要用PETsc或者MKL。如果一开始没有考虑到这种需求,很容直接使用Eigen的数据结构,将原始的数据结构和Eigen耦合在一起;此外可能一开始不需要全部转成PETsc格式,仍然需要Eigen数据结构和某些功能;还有可能已经有第三方封装好的MKL或者PETSc或者求解器不仅自己需要,还要满足给第三方的接口。


当然这些需求可以通过面向过程的编码方式实现,但从代码的可重用以及代码维护,扩展角度看,用面向对象的方式更灵活,更易于封装和模块化。

Adaptor 适配器也是一种常见的设计模式,主要作用把一个类的接口变换成客户端所期待的另一种接口,从而使原本接口不匹配而无法一起工作的两个类能够在一起工作。


关于Adaptor最通俗的解释就是电源接口的转换,比如我们国家的电压是220伏,国外是110伏,所以国内的电子产品到国外使用就需要用转换器,将110伏转成220伏,这个转换器就可以认为是Adaptor的具体表现。


图片

如上图所示,用户原来调用的是MKL的接口,通过adpater接口,可以调用Adaptee的Eigen接口。这样既不用改动原来Eigen接口,也无需改动MKL接口。通过adapter实现数据转化和调用,最大程度实现了解耦功能。

声明:原创文章,欢迎留言与我讨论,如需转载留言

理论科普求解技术代码&命令其他软件
著作权归作者所有,欢迎分享,未经许可,不得转载
首次发布时间:2021-03-28
最近编辑:3年前
多物理场仿真技术
www.cae-sim.com
获赞 126粉丝 320文章 220课程 0
点赞
收藏
未登录
还没有评论
课程
培训
服务
行家
VIP会员 学习 福利任务 兑换礼品
下载APP
联系我们
帮助与反馈