精通Python设计模式
10推荐 收藏
31.3K阅读
图灵程序设计丛书

精通Python设计模式

Sakis Kasampalis (作者) 夏永锋 (译者)
本书分三部分、共16章介绍一些常用的设计模式。第一部分介绍处理对象创建的设计模式,包括工厂模式、建造者模式、原型模式;第二部分介绍处理一个系统中不同实体(类、对象等)之间关系的设计模式,包括外观模式、享元模式等;第三部分介绍处理系统实体之间通信的设计模式,包括责任链模式、观察者模式等。
本书的读者对象为有一定基础的Python程序员。
纸质书
¥35.55 ¥45.00

出版信息

  • 书  名精通Python设计模式
  • 系列书名图灵程序设计丛书
  • 执行编辑关于本书的内容有任何问题,请联系 杨琳
  • 出版日期2016-07-19
  • 书  号978-7-115-42803-5
  • 定  价45.00 元
  • 页  数160
  • 印刷方式黑白
  • 开  本16开
  • 出版状态暂时缺货

所属分类

同系列书

  • HTTP权威指南

    David Gourley   Brian Totty   Marjorie Sayer   Sailu Reddy   Anshu Aggarwal   陈涓   赵振平   译

    本书是HTTP及其相关核心Web技术方面的权威著作,主要介绍了Web应用程序是如何工作的,核心的因特网协议如何...

  • JavaScript高级程序设计(第3版)

    Nicholas C.Zakas   李松峰   曹力   译

    本书是JavaScript超级畅销书的新版。ECMAScript 5 和HTML5在标准之争中双双胜出,使大量...

  • 计算机科学的基础

    Al Aho   Jeff Ullman   傅尔也   译

    本书全面而详细地阐述了计算机科学的理论基础,从抽象概念的机械化到各种数据模型的建立,用算法、数据抽象等核心思想...

  • Java技术手册(第6版)

    Benjamin J Evans   David Flanagan   安道   译

    通过学习本书,你将能够: 掌握最新的语言细节,包括Java 8的变化 使用基本的Java句法学习面向对...

  • 机器学习实战

    Peter Harrington   李锐   李鹏   曲亚东   王斌   译

    机器学习是人工智能研究领域中一个极其重要的研究方向,在现今的大数据时代背景下,捕获数据并从中萃取有价值的信息或...

本书特色

16种基本设计模式,轻松解决软件设计常见问题
借力高效的Python语言,用现实例子展示各模式关键特性

本书用实际生活中的例子带你了解常用的设计模式,介绍了诸多有关编写Python风格代码的底层细节和概念,包括故障排除、最佳实践、系统架构和设计原则等,帮你解决每天都会遇到的问题。

探索用工厂方法和抽象工厂来创建对象
使用原型模式克隆对象
使用适配器模式让不兼容的接口变得兼容
使用代理模式保障接口安全
使用策略模式动态选择算法
使用修饰器模式,在不使用子类化的情况下扩展对象
使用模型–视图–控制器模式将逻辑从用户界面解耦

<亚马逊读者评论>
“这本书结构合理、语言简洁,各章自成一体,可以单独阅读。每章都包含一些理论解释以及大量代码和现实生活中的例子。用例对于理解在何时运用何种设计模式很有帮助。如果你是想要学习设计模式的Python程序员,我真诚地向你推荐这本书。”

“如果想要优化代码、增强其可读性,你应该看看这本使用了代码结构示例的书,看后一定会有新的想法。这本书的写作风格干净利落、紧抓要点,不适合初学者,但如果你具备一些Python编程经验,想要学习新的编程风格,这本书很适合你。”

目录

版权声明 阅读
译者序 阅读
前言 阅读
第一部分 创建型模式 阅读
第 1 章 工厂模式 阅读
第 2 章 建造者模式 阅读
第 3 章 原型模式 阅读
第二部分 结构型模式
第 4 章 适配器模式
第 5 章 修饰器模式
第 6 章 外观模式
第 7 章 享元模式
第 8 章 模型—视图—控制器模式
第 9 章 代理模式
第三部分 行为型模式
第 10 章 责任链模式
第 11 章 命令模式
第 12 章 解释器模式
第 13 章 观察者模式
第 14 章 状态模式
第 15 章 策略模式
第 16 章 模板模式

作者介绍


<作译者介绍>
Sakis Kasampalis
资深软件工程师,对于多种编程语言和工具都有丰富的经验,原则是在正确的工作上运用正确的工具。Python是他最喜欢的工具之一,因为它十分高效。

夏永锋
毕业于上海交通大学软件学院,曾就职于腾讯上海,现任百度上海研发中心高级研发工程师,爱好编程与翻译。

大家也喜欢

  • Python函数式编程(第2版)

    史蒂文·洛特   李超   陈文浩   译

    Python具备函数式编程的许多核心特征,因此可以借鉴其他函数式语言的设计模式和编程技术,编写出简洁优雅的代码...

  • Python数据结构与算法分析(第2版)

    布拉德利·米勒   戴维·拉努姆   吕能   刁寿钧   译

    了解数据结构与算法是透彻理解计算机科学的前提。随着Python日益广泛的应用,Python程序员需要实现与传统...

  • Serverless架构应用开发:Python实现

    [印] 贾莱姆·拉杰·罗希特   安翔   译

    本书主要基于云架构的Python示例来讲解Serverless的概念。Serverless架构的核心思想是函数...

  • Python数据科学与机器学习:从入门到实践

    【美】弗兰克•凯恩(Frank Kane)   陈光欣   译

    本书介绍了使用Python进行数据分析和高效的机器学习,首先从一节Python速成课开始,然后回顾统计学和概率...

  • 深入理解Python特性

    [德]达恩·巴德尔(Dan Bader)   孙波翔   译

    本书致力于帮助Python开发人员挖掘这门语言及相关程序库的优秀特性,避免重复劳动,同时写出简洁、流畅、易读、...

相关文章

  • 平田 2推荐

    通俗 Python 设计模式——原型设计模式

    从本文开始,将会写一系列关于Python 设计模式通俗讲解的文章,主要参考《Python 设计模式》一书,顺序可能与原书目录顺序有所不同,因为我本身也是一边学习一边总结。本系列文章的主旨是剥开复杂的理论外壳,用最通俗的方法来讲解Python 设计模式。并且,通过修改代码为更简洁…...

  • 平田 1推荐

    通俗 Python 设计模式——工厂模式

    今天讲一下最简单常用的创建型模式——工厂模式。 工厂模式,从名字上来讲就已经说明了它的本质——像工厂一样,根据得到的材料构造需要的产品。但是根据书上的介绍工厂模式通常有两种形式:一种工厂方法,一种是抽象工厂。我们分别来讲述一下工厂模式的这两种形式。 通俗的解释工厂方法就是是…...

  • 平田 2推荐

    通俗 Python 设计模式——建造者模式

    建造者模式,是创建型模式中的第三种模式,一般的开发过程中用的比较少。所以只做简单的介绍。 根据书上的介绍,建造者模式通常用于补充工厂模式的不足,尤其是在如下场景中: 要求一个对象有不同的表现,并且希望将对象的构造与表现解耦 要求在某个时间点创建对象,但在稍后的时间点再访问…...

  • 平田 2推荐

    通俗 Python 设计模式——适配器模式

    从这篇开始,介绍书中第二种类型的设计模式——结构型模式。结构型模式主要用于处理系统中不同实体间的关系,如 话题与评论 这类场景。今天介绍其中的适配器模式。 适配器模式,通俗的说就是设计 接口/api,以保证程序符合 开放/封闭 原则,保持新老代码间的兼容性。 适配器模式在实…...

  • 平田 1推荐

    通俗 Python 设计模式——外观模式

    外观模式是一种在日常开发中经常用到的设计模式,它与之前提到过的适配器模式有一定的相似之处,但理念是不一样的。 外观模式的核心在于将复杂的内部实现包装起来,只向外界提供简单的调用接口。类似现实世界中的电脑,开机按钮可以说就是一个简单的调用接口,帮用户屏蔽了复杂的内部电路。 在…...

  • 平田 1推荐

    通俗 Python 设计模式——享元模式

    享元模式是一种用于解决资源和性能压力时会使用到的设计模式,它的核心思想是通过引入数据共享来提升性能。 我们知道程序开发的重点是对现实世界的抽象,那么相似的对象必然有某些相同的属性或行为。比如游戏中,每个角色的均可以做一些相同的动作,同样类型的角色有更多相同的动作。那么,出于优…...

  • 平田 2推荐

    通俗 Python 设计模式——代理模式

    今天来说一说代理模式。 代理模式顾名思义,是对资源进行代理访问的一种模式,这里的资源是泛指在程序中会使用到的数据、操作、过程、对象等等。当然,针对不同的资源,代理进行的操作不尽相同,根据前人的总结,有四种常见且知名的代理模式: 远程代理,即在物理上的远程资源(如服务器)在…...

  • 源码哪里下载的?https://www.packtpub.com/support/code-downloads没法下载
    Jake20001  发表于 2019-06-23 22:19:39
    推荐
    • 您好,可以在本页右侧的“随书下载”处找到源代码文件。

      杨琳  发表于 2019-06-24 08:48:47
  • 麻烦在翻译完成后,通知一下。等待购买中......
    wuyu1998  发表于 2015-11-14 08:03:07
    推荐
    • 7月份即将上市

      夏永锋  发表于 2016-06-23 17:29:34
    • 终于出来了,谢谢。

      wuyu1998  发表于 2016-07-20 05:52:00
  • 进阶好书
    Taipa  发表于 2016-10-26 13:57:42
    推荐
  • python还有设计模式???
    python最好的设计就是不用任何的class呀!
    躺着读书  发表于 2017-04-01 11:27:46
    推荐
    • 最好的设计是不用class,你是来搞笑的吗 ?

      binbjz  发表于 2018-04-20 13:55:36
    • @binbjz 我在转py之前有10年的java经验。这一点上,我还是有话说的。py的class 和c++ java有巨大的差异,简单的来说如下:

      1. py的class不是紧凑的,简单的来说py的class其实只有id和name 2个属性,其他__dict__或者__slots__都不是存储在class中的,而是全局变量。简单的来说py的class是一个dict的包装器,跟准确的说是一个namespace或者java的package,而不是c++或者java的class
      2. py没有块级作用域,py只有LEGB四层作用域(这一点类似js,所以我认为py设计模式应该类比js)
      3. 综上两点以后,py不能简单的照搬c++或java的设计模式,甚至于说py的不应该叫做设计模式,不妨取名叫做模块化。

      你参考现在主流的js的书,都是推荐函数式的范式,而不是面相对象的范式。其实在js或者py这样的语言中,可以类比c++/java 的class的概念,应该是func或者def(故:py class == java package)

      py中,真正类比java的class的应该是 named tuple 。而这样的东西用起来太复杂了,就丢失了脚本语言的主要优点了。

      此外,小提示:py中如何实现单例模式?

      答:py的单例模式就是file本身。除非你显式reload,否则任何文件都只会被加载一次(既被执行一次)。所以py的单例模式 就是在文件中不用class写出你的变量或者函数。而java的设计模式中,用途最多的就是单例模式以及其他的建造模式,所以我说py不必使用任何“设计模式”

      问题2:py如何设计建造者模式?
      如果你放弃了clas本身,你要构造一个东西,py这样的脚本语言提供了大量的字面量,比如说{} ()和[] 包括函数式的 list/tuple/dict comphrensive这些就是语法级支持的building类比的“设计模式”

      以上和我之前说的并不矛盾,这都是 函数式的范式 vs 面相对象范式

      躺着读书  发表于 2018-04-22 10:38:27
    • 综上,考虑到我放弃了py的class。如果一定要让py模仿c++/java 我会把所有的class关键字替换成def

      躺着读书  发表于 2018-04-22 10:43:03
    • @躺着读书 说的有道理,并不错,但是这本书讲的设计模式就是面向对象用class 的吧,况且按照这种通用的设计模式来写py也可以很好的实现并管理的吧。

      joyc  发表于 2018-06-01 08:53:38
  • 不错的一本书!值得一看!
    binbjz  发表于 2018-04-10 16:10:23
    推荐