微信号:csdnbigdata

介绍:CSDN分享Hadoop、Spark、NoSQL/NewSQL、HBase、Impala、内存计算、流计算、机器学习和智能算法等相关大数据观点,提供云计算和大数据技术、平台、实践和产业信息等服务.

Python 中最简最好的设计模式

2019-03-07 08:44 罗伟富(Spencer)

C 语言诞生于 1972 年,却随着 Unix 的诞生才深深植根于各大操作系统;

C++ 诞生于 1983 年,却因微软的可视化桌面操作系统才得以广泛传播;

Java 诞生于 1995 年,却因互联网的迅速崛起才变得家喻户晓;

Python 诞生于 1991 年,而下一场技术革命已然开始,AI 时代已然成风。在 AI 领域中已经被广泛使用的 Python 必将成为下一个时代的第一开发语言!

最热门的AI开源框架 PyTorch 和 TensorFlow 都已经采用了 Python 作为接口和开发语言。

除此之外,还有一堆的 AI 相关的框架库,也都纷纷采用,如 AIMA、pyDatalog、SimpleAI、PyBrain、PyML 等。

语言的热门程度一直是程序员持续关注的话题,也是众多初学者的纠结之处;毕竟,如果学习了一门冷门的技术,不但英雄无用武之地,而且在求职市场上也没有什么优势。

2018 年的 TIOBE 编程语言排行榜中,Python在众多的计算机语言中已经稳稳排名第四了,而且还有大幅上升的趋势(2017 年排名第 5)。

作为这么一门有前途也有钱途的语言,还有什么理由不去学习和掌握呢?

01

学了 Python 为什么还要学设计模式


要成为一名优秀的程序员,只掌握一门编程语言是不够的;还需要学习完成一个大型实际项目所需的更多技能:

  • 如何组织代码

  • 面向对象设计

  • 数据结构和算法

  • 数据库基础知识

  • 构建和部署

优良的代码组织结构需要依赖团队制定的编程规约、长期养成的编程习惯、及不断积累的技术经验。

面向对象设计是一种设计复杂程序的方法,它将代码分成了单独的类和对象(类的实例),这些类和对象封装了一些特定的功能。

要更深入地理解面向对象的设计思想,则需要学习设计模式,设计模式是面向对象思想的高度提炼和模板化。

因此掌握设计模式,是写出高质量代码的必备要素!掌握设计模式,理解面向对象的编程思想,将会使您的代码更具可读性,更易拓展和更可维护。

02

什么是设计模式?


设计模式最初是被 GoF 于 1995 年提出的。GoF 全称是 Gang of Four(四人帮),即 Erich Gamma、Richard Helm、Ralph Johnson和John Vlissides。

他们四人于1995年出版了一本书《Design Patterns: Elements of Reusable Object-Oriented Software》(翻译成中文是《设计模式 可复用面向对象软件的基础》),第一次将设计模式提升到理论高度,并将之规范化。该书提出了 23 种经典的设计模式。

设计模式(Design pattern)是一套被反复使用、多数人知晓的、无数工程师实践的代码设计经验的总结,它是面向对象思想的高度提炼和模板化。

使用设计模式是为了让代码具有更高的可重用性,更好的灵活性和可拓展性,更易被人阅读和理解。

03

为什么要学设计模式?


设计模式是软件开发人员在软件开发过程中面临的一般问题的解决方案。这些解决方案是众多软件开发人员经过相当长的一段时间的试验和错误总结出来的。所以不管你是新手还是老手,学习设计模式对你都有莫大的帮助。

学习设计模式的理由有很多,我这里只列出几个最实现的:

  1. 摆脱面试的窘境,不管你是前端工程师还是后端工程师,亦或是全端工程师,设计模式都是不少面试官必问一道题。

  2. 让你的程序设计能力有一个质的提升,不再是写一堆结构复杂,难以维护的烂代码。

  3. 让你的程序更健壮、更灵活、可复用。

  4. 使你对面向对象的思想有一个更高层次的理解。

04

Python 中最简最好的设计模式


设计模式于 1995 被 GoF 提出,被广泛应用于热门的面对象语言。目前用 Java、C++ 描述的设计模式的书籍和资料已经非常多了,但用 Python 来描述的真是太少了;

我在当当上搜索了一下“Python 设计模式”,只有那零星的几本书,而且大部分是国外的书,翻译过来后都变味了。

Python 中讲设计模式的书籍和资料非常少,当然有一些其自身的原因:

  1. 相较于 Java 和 C++ 而言,Python 是一门解释类型的语言,本身对数据类型的支持非常灵活多变。

  2. Python 本身具有非常好的灵活性和良好的封装性,使得其自带了很多的功能,已经把一些模式融入到自己的语言特性了。

但这不代表学习 Python 的你就不需要了解设计模式了,原因有如下:

  1. Python 具有良好的设计,但总会有一些复杂的需求,语言特性本身难以支撑,这个时候就需要考虑一些设计模式了。

  2. 设计模式是一种编程思想,他和语言没有强关联,能适用于所有面向对象的语言,学习设计模式能让你对面向对象的思维有更深入的了解。能更容易理解一些框架的设计,能读懂更多开源代码(很多优秀的开源项目,本身应用了大量的设计模式)

那既然设计模式这么重要,作为一个 Python 人儿,有没有一个简单易懂的教程呢?

答案当然是肯定的,下面要介绍的就是 Python 中最简最好的设计模式——《从生活中领悟设计模式(Python)》。

为什么是最简?

并不是代码越多程序就越强大,代码多可能是功能比较多,但不一定强大。优秀的程序往往是即简又精!在这一课程中作者力求用最简单的语法实现最复杂的逻辑;用最短小的代码写出最强悍的程序!

为什么是最好?

网上有很多设计模式相关的资料,但这些资料要么写的过于复杂,读起来乏味难懂;要么太简单,不切合实战中的项目开发。本课程每一章节的内容都从生活中一个个有趣的小故事开始,由浅入深地讲解每一个模式,在化繁为简的同时也会给出实际的应用案例。

从生活中领悟设计模式

程序源于生活,又高于生活!程序的灵魂在于思维的方式,而思维的灵感来源于生活的精彩。程序不应只是冷冰冰的代码,更应赋予它生活的乐趣和特殊的意义;用心去感受生活,从生活中领悟设计模式,你将会有意想不到的收获。

《从生活中领悟设计模式(Python)》适合具有一定编程基础又渴望提升自己编程技能的人,此课程如果武功秘籍一般力求用最通俗的语言阐述最难懂的概念;用最简单的语法实现最复杂的逻辑;用最短小的代码写出最强悍的程序!

识别二维码

免费试读

《从生活中领悟设计模式》


此课程分三卷内容:

第一卷:基础篇(第01~21课),19 种常用设计模式单独章节讲解 + 剩余 4 种模式合集(会有1~2篇的篇幅);

第二卷:进阶篇(第22~24课),是基础设计模式的衍生,也是各大编程语言中非常重要而常见的种编程机制;

第三卷:经验篇(第25~27课),将会分享我对设计原则、设计模式、项目重构的经验和看法。

相信我,只需一眼,你就会对这个课程着迷。点击 阅读原试读了解~

 
CSDN大数据 更多文章 今日头条的推荐阅读你为什么都喜欢? Python ,AI 时代的第一开发语言! 10 分钟用 Python 搞定数据可视化! 不学设计模式,源码你都看不懂! 轻量级编程模型、Web 2.0 创业神器 Ruby on Rails&nbsp
猜您喜欢 如何get到春节里的每一个红包? 40条技巧优化PHP代码 一张图清晰追溯数据库的发展历程(1962-2016) UCloud携手极客邦揭秘电商后端技术 Kotlin-Android的另一番风味