近期在读“流畅的Python”这本书,想把自己的读书笔记分享给大家,希望能帮到也对这本书感兴趣但是没时间看的各位。(文章中大部分的话和图片摘录总结自“流畅的Python”一书,以及python官方网站)

章节概述:运用Python的一等函数特性,重构几个经典的设计模式
章节结构:

  • 策略模式
  • 命令模式

具体内容:

  • 策略模式

    • 策略模式概念:定义一些列算法,把它们一一封装起来,并且使他们可以相互替换,本模式使得算法可以独立于使用它的客户而变化
    • UML:CL_modle.png
    • 上下文:把一些计算委托给实现不同算法可互换组件,他提供服务,在这个点上实例中,上下文时Order,他会根据不同的算法计算促销折扣
    • 策略:实现不同算法的组件共同的jji恶口,比如Promotion的抽象类
    • 具体策略:策略的具体子类
    • Python实现:每个具体策略都是一个类,只定义了一个方法discount,此外策略实例没有实例属性,所以Python中运用简单的函数来表示具体策略。Promotion是个函数列表,因为函数时一等对象。
  • 命令模式

    • 命令模式概念:在软件系统中,“行为请求者”与“行为实现者”通常呈现一种“紧耦合”。但在某些场合,比如要对行为进行“记录、撤销/重做、事务”等处理,这种无法抵御变化的紧耦合是不合适的。在这种情况下,如何将“行为请求者”与“行为实现者”解耦?将一组行为抽象为对象,实现二者之间的松耦合。这就是命令模式(Command Pattern)
    • UMLML_modle.png
    • Python实现:通过把函数作为参数传递而简化。

猜猜我是谁
18 声望5 粉丝

一个话痨的技术小白