2020-04-07 Data from O’reilly

封装调用

命令模式
命令模式将发出请求的对象和执行请求的对象解耦。再被解耦的两者之间是通过命令对象进行沟通的,命令对象封装了接受者和一个或一组动作,命令也可以支持撤销,做法是undo,命令也可以是用来实现日志和事物系统。
将发送命令和执行命令两者解耦,即对象1知道发送命令,比如餐馆里的服务员小翠,每次就知道接单,看到顾客要求点单,就把订单给顾客然后写好了以后再拿到厨房里,他不在乎订单上的东西怎么做也不在乎订单上写的什么,这就实现了服务员小翠和大厨老王的解耦同理,老王也不关系外面是谁点了这个东西,他只要看到订单上有什么东西,他就去准备这样菜品,然后做完了就说 我做完了!上菜!就好了。

随遇而安—适配器

屏幕快照 2020-04-07 16.33.46.png
当我们现有的接口不能满足客户的要求时,比起重新设计一条合适的接口不如随意而安,用一个适配器把客户和现有的东西通过一个适配器连接起来。

封装算法

抽象和泛化
模版方法模式:在一个方法中定义一个算法的骨架,而将一些步骤延迟到子类中。模版方法使得子类可以在不改变算法结构的情况下,重新定义算法中的某些步骤。
屏幕快照 2020-04-07 16.43.59.png
钩子
钩子是一种被声明在抽象类中的方法,但只有空的或者默认的实现。钩子的存在,可以让子类有能力对算法的不同点进行挂钩。要不要挂钩,由子类自己决定。
好莱坞原则
“别调用我们,我们来调用你”


感谢您的阅读
翻译和整理 by 嘉艺
2020.04.05
如有任何疑问或机会请发送邮件至email:
lucida997@outlook.com