当前位置: 首页 > 后端技术 > Python

SmoothPython阅读笔记---第6章使用一等函数实现设计模式

时间:2023-03-25 22:45:32 Python

最近在看《SmoothPython》这本书,想把我的阅读笔记分享给大家,希望能帮助到喜欢这个的你book对书感兴趣但没有时间阅读的人。(文中大部分文字和图片摘自《SmoothPython》一书和python官网)章节概述:利用Python一流的函数特性重构几种经典设计模式章节结构:策略模式命令模式具体内容:strategymodestrategymode概念:定义一系列算法,将它们一个一个封装起来,并使它们相互替换,这种模式使算法能够独立于使用它的客户端而改变UML:context:将一些计算委托给Interchangeablecomponents实现不同的算法提供服务。本实例中,当context为Order时,会根据不同的算法计算促销折扣策略:实现不同算法的组件有共同的jji坏词,比如Promotion具体策略的抽象类:具体策略Python实现的具体子类:每个具体的策略都是一个类,只定义了一个方法discount。另外,策略实例没有实例属性,所以在Python中用简单的函数来表示具体的策略。提升是一个函数列表,因为函数是一流的对象。命令模式命令模式概念:在软件系统中,“行为请求者”和“行为实施者”通常呈现“紧耦合”。但在某些场合,比如“记录、撤销/重做、事务”等行为的处理,这种无法抗拒变化的紧耦合并不适用。在这种情况下,如何将“行为请求者”与“行为实施者”解耦呢?抽象出一组行为作为对象,实现两者之间的松耦合。这是命令模式UMLPython实现:通过将函数作为参数传递来简化。