Head First 设计模式笔记(第六章 命令模式 & 第七章 适配器模式)

第六章 命令模式 p191~233, 第七章 适配器模式 p234~273.

概述

命令模式, 将所有的操作封装成统一的Execute()接口.
适配器模式, 里面包含了适配器模式, 外观模式, 将原有接口转成新的接口. 适配器模式是1:1的关系, 外观模式是N:1的关系.

命令模式

操作的种类很多, 具体的细节也不一致, 如何实现一个执行引擎执行所有操作的行为, 以及如何实现undo操作.

将操作统一为一个最简单的Execute()接口.

适配器模式

适配器模式

旧系统和新厂商的接口不匹配, 有的可能修改一下就可以适配的, 有的不能改, 改了也适配不了, 怎么办?

在旧系统和新厂商之间做一个适配器, 连接2个系统, 这样旧系统不需要修改就可以用上新厂商的接口了.

这个让我想到了边车模式, 参考https://www.cnblogs.com/rjzheng/p/10390827.html.

外观模式

原有接口众多且复杂, 开发人员调用的话, 需要理解很多概念, 且容易出错, 怎么办?

根据八二原则, 80%的时候只用到了20%的功能, 我们就可以把这常用的20%功能封装起来, 提供更友好的接口, 这样调用方便且不容易出错. 如果真用到了比较偏的功能, 再使用原接口.

现实场景

命令模式
MySQL的bin log, 主库记录二进制日志, 从库复制这些日志, 并重新执行一遍, 达到和主库同步的目的.

适配器模式
比如原系统是SOAP接口, 在不修改原接口的情况, 如何能让js进行调用.

外观模式
我认为日常用到的帮助类, 就是外观模式的一种体现, 让开发不需要理解过多专业类库的对象知识, 将常用功能包装起来, 就可以直接拿来使用.

posted @ 2020-05-30 10:00  Panda110  阅读(126)  评论(0编辑  收藏  举报