知识卡片

用适配器模式屏蔽第三方库对象类型对团队代码的侵入

普通读书笔记卡 · 1990.e

内容

MVC框架用DOM4J解析XML配置,返回Node/Element等库自身类型,不能假设开发者都懂 DOM4J。解法是定义团队自己的领域对象ActionNode(只暴露业务含义明确的方法),写适配器 XmlActionNode把DOM4J对象包在内部转换成ActionNode接口。发散:这是适配器模式的架构层 用途——不只是让不兼容接口协同工作,更是在第三方库和团队代码间建隔离层,换库只需重写 适配器。

参考来源

- 位置:《设计模式之禅(第2版)》第37章《MVC框架》37.1.5节(源文件:_epub-src/text/part0159.html) - 结论依据:原文说明"使用DOM4J查找到该节点是一个Node对象,如果要取得属性,就需要转换为一个元素(Element)对象,这不是每个开发成员都能理解的,于是给架构师提出的问题就是:如何把一个DOM4J对象转换成自己设计的对象。答案是适配器模式",并总结"这样设计以后,系统开发人员就不用考虑开源工具对系统的影响,屏蔽了工具系统的影响,这是一个典型的适配器模式应用"。 - 原始内容:使用DOM4J查找到该节点是一个Node对象,如果要取得属性,就需要转换为一个元素(Element)对象,这不是每个开发成员都能理解的,于是给架构师提出的问题就是:如何把一个DOM4J对象转换成自己设计的对象。答案是适配器模式……这样设计以后,系统开发人员就不用考虑开源工具对系统的影响,屏蔽了工具系统的影响,这是一个典型的适配器模式应用。