
白话设计模式 28 讲
一看就懂的设计模式!
优惠券已抵扣
余额抵扣
还需支付
¥39.90
¥99.00
购买须知?
本专栏为图文内容,最终完结不会低于15篇文章。
订阅专栏,享有专栏所有文章阅读权限。
本专栏为虚拟商品,基于网络商品和虚拟商品的性质和特征,专栏一经购买无正当理由不予退款,不支持升级,敬请谅解。
陌尘(MoChen)
程序员码龄: 14+年
IT从业经验: 10+年
曾任职单位: 北大方正,阿里巴巴
出版的书籍: 《人人都懂设计模式》、《Python 設計模式》
擅长的语言: C++/Python/JavaScript
涉及的技术: 电子书SDK,PC户端开发,Linux应用开发,前端开发
涉及的行业: 电子出版,在线教育,文档协调,智能机器人
展开
-
导读:生活中的设计模式——启程之前,请不要错过我
为什么叫设计模式什么是设计模式设计模式与生活有什么联系为什么要学设计模式如何进行学习为什么选择 Python弥补市场空缺大势所趋,Python 已然成风简单的 Python 基础Python 的特点基本语法常用容器List(列表)Tuple(元组)Dictionary(字典)类的定义Demo 让你顿悟重要说明两年前 优快云...原创 2020-09-22 12:14:23 · 3064 阅读 · 0 评论 -
第01课:生活中的监听模式——一坑爹的热水器
用程序来模拟生活从剧情中思考监听模式监听模式监听模式的模型抽象代码框架类图基于框架的实现模型说明设计要点推模型和拉模型应用场景【故事剧情】 刚刚大学毕业的 Tony 只身来到北京这个硕大的城市,开始了北漂的生活。但刚刚毕业的他身无绝技、包无分文,为了生活只能住在沙河镇一个偏僻的村子里,每天坐着程序员专线(13号线)来回穿梭于昌平区与西城...原创 2020-09-22 12:14:22 · 2814 阅读 · 0 评论 -
第02课:生活中的适配模式——身高不够鞋来凑
用程序来模拟生活从剧情中思考适配器模式适配器模式设计思想适配器模式的模型抽象类图模型说明设计要点优缺点适配器模式的优点适配器模式的缺点实战应用应用场景【故事剧情】 晚上九点半,Tony 上了地铁,准备回家,正巧还有一个空位,赶紧走向前坐下。工作一天后,疲惫不堪的他正准备坐着打个盹小睡一会儿。这时进来两个小姑娘,一个小巧可爱,一个...原创 2020-09-22 12:14:20 · 2838 阅读 · 0 评论 -
第03课:生活中的状态模式——人与水的三态
用程序来模拟生活从剧情中思考状态模式状态模式的模型抽象代码框架类图基于框架的实现模型说明应用场景【故事剧情】 一个天气晴朗的周末,Tony 想去图书馆给自己充充电。于是背了一个双肩包,坐了一个多小时地铁,来到了首都图书馆。走进一个阅览室,Tony 看到一个青涩的小女孩拿着一本中学物理教科书,认真地看着热力学原理……女孩容貌像极了 Tony 中学的...原创 2020-09-22 12:14:19 · 1964 阅读 · 0 评论 -
第04课:生活中的单例模式——你是我生命的唯一
用程序来模拟生活从剧情中思考单例模式单例模式的模型抽象代码框架类图基于框架的实现应用场景【故事剧情】 每一个人都渴望爱情,Tony 也一样。自从毕业后,Tony 就一直没再谈过恋爱,离上一次的初恋也已经过去两年。一个巧合的机会,Tony 终于遇上了自己的喜欢的人,Jenny。她有一头长发,天生爱笑,声音甜美,性格温柔…… 作为一个程序员的 Tony...原创 2020-09-22 12:14:18 · 1908 阅读 · 0 评论 -
第05课:生活中的职责模式——我的假条去哪了
用程序来模拟生活从剧情中思考职责模式职责模式的模型抽象代码框架类图基于框架的实现模型说明优缺点应用场景【故事剧情】 周五了,Tony 因为家里有一些重要的事需要回家一趟,于是向他的领导 Eren 请假,填写完假条便交给了 Eren。得到的回答却是:“这个假条我签不了,你得等部门总监同意!” Tony 一脸疑惑:“上次去参加 SDCC 开发者大会请了...原创 2020-09-22 12:14:16 · 2083 阅读 · 0 评论 -
第06课:生活中的中介模式——找房子问中介
用程序来模拟生活从剧情中思考中介模式中介模式的模型抽象类图模型说明应用场景【故事剧情】 人在江湖漂,岂能顺心如意?与大多数毕业生一样,第一份工作很难持续两年以上。Tony 也在一家公司工作了一年半后,换了一个东家。 在北京这个硕大的城市里,换工作基本就意味着要换房子。不得不说,找房子是一件烦心而累人的工作。 你首先要知道自己要怎样的房子:多...原创 2020-09-22 12:14:15 · 1872 阅读 · 0 评论 -
第07课:生活中的代理模式——帮我拿一下快递
用程序来模拟生活从剧情中思考代理模式代理模式的模型抽象代码框架类图基于框架的实现模型说明代理模式的优点代理模式的缺点应用场景【故事剧情】 八月中秋已过,冬天急速飞来……一场秋雨一场寒,十场秋雨穿上棉!在下了两场秋雨之后,Tony 已经冻的瑟瑟发抖了。周六,Tony 在京东上买了一双雪地鞋准备过冬了,但是忘了选择京东自营的货源,第二天穿新鞋的梦...原创 2020-09-22 12:14:13 · 2167 阅读 · 0 评论 -
第08课:生活中的装饰模式——你想怎么穿就怎么穿
用程序来模拟生活从剧情中思考装饰模式装饰模式装饰模式的特点装饰模式的模型抽象类图模型说明应用场景故事剧情 工作两年后,Tony 因为换工作而搬了一次家!这是一个4室1厅1卫1厨的户型,住了4户人家。恰巧这里住的都是年轻人,有男孩也有女孩,而 Tony 就是在这里遇上了自己喜欢的人,她叫 Jenny。Tony 和 Jenny 每天都低头不见抬头见,...原创 2020-09-22 12:14:12 · 1766 阅读 · 0 评论 -
第09课:生活中的工厂模式——你要拿铁还是摩卡
用程序来模拟生活从剧情中思考工厂模式工厂模式的模型抽象类图模型说明简单工厂的优点简单工厂的缺点模型的拓展应用应用场景【拓展】工厂三姐妹简单工厂模式工厂方法模式抽象工厂模式进一步思考【故事剧情】 Tony 工作的公司终于有了自己的休息区! 在这里大家可以看书、跑步、喝咖啡、玩体感游戏!开心工作,快乐生活! 现在要说的是休息区...原创 2020-09-22 12:14:10 · 1957 阅读 · 0 评论 -
第10课:生活中的迭代模式——下一个就是你了
用程序来模拟生活从剧情中思考迭代器模式迭代器模式的模型抽象迭代器的设计思路基于设计思路的实现类图模型说明迭代器模式的优点迭代器模式的缺点应用场景【故事剧情】 Tony 自小就有两颗大牙缺失、腐化,因为父母对牙齿健康的意识太缺失,一直没有治疗过。最近因为上火严重,牙齿更加疼痛,刷牙时水温稍微过低或过高都难耐无比,于是决定自己去医院看牙。 周...原创 2020-09-22 12:14:09 · 3221 阅读 · 0 评论 -
第11课:生活中的组合模式——自己组装电脑
用程序来模拟生活从剧情中思考组合模式组合模式的模型抽象类图模型说明组合模式的优点组合模式的缺点应用场景【故事剧情】 Tony 用的笔记本电脑还是大学时候买的,到现在已经用了5年,虽然后面加过一次内存,也换过一次硬盘,但仍然跟不上 Tony 对性能的要求,改变不了它被淘汰的命运,是时候该换一台新的电脑了…… 换什么电脑呢?MacBook,Thi...原创 2020-09-22 12:14:07 · 2222 阅读 · 0 评论 -
第12课:生活中的构建模式——想要车还是庄园
用程序来模拟生活从剧情中思考构建模式与工厂模式的区别与组合模式的区别构建模式的模型抽象类图基于升级版的实现模型说明应用场景【故事剧情】 下周就要过年了,这是 Tony 工作后的第一个春节,还是在离家这么远的北京工作,所以肯定不能空手回去,得给家人准备一些礼物。Tony 来到商城给爸妈各自买了一套衣服,又给两个小侄子买了两套积木玩具…… 回到...原创 2020-09-22 12:14:06 · 2063 阅读 · 0 评论 -
第13课:生活中的克隆模式——给你一个分身术
用程序来模拟生活从剧情中思考克隆模式浅拷贝与深拷贝克隆模式的模型抽象代码框架类图基于框架的实现模型说明克隆模式的优点克隆模式的缺点应用场景【故事剧情】 Tony 最近在看一部电视剧《闪电侠》,里面一个人物叫 Danton Black 的超级人类,拥有复制自身的超能力,能够变身出六个自己,男主角第一次与他交锋时还晕了过去。 Tony ...原创 2020-09-22 12:14:04 · 2603 阅读 · 0 评论 -
第14课:生活中的策略模式——怎么来不重要,人到就行
用程序来模拟生活从剧情中思考策略模式策略模式策略模式的模型抽象类图模型说明设计要点优缺点实战应用应用场景【故事剧情】 Tony 在北京漂泊了三年,在这期间有很多的美好,也有很多心酸,有很多期待,也有很多失落;可终究还是要离开了,原因很简单:一来北京压力太大,生活成本太高;二来北京离家太远。离开北京,Tony 也没有回家,而是选择了新的城市——...原创 2020-09-22 12:14:03 · 1879 阅读 · 0 评论 -
第15课:生活中的命令模式——大闸蟹,走起
用程序来模拟生活从剧情中思考命令模式命令模式命令模式的模型抽象代码框架类图模型说明实战应用应用场景【故事剧情】 David:听说阿里开了一家实体店——盒马鲜生,特别火爆!明天就周末了,我们一起去吃大闸蟹吧! Tony:吃货!真是味觉的哥伦布啊,哪里的餐饮新店都少不了你的影子。不过听说盒马鲜生到处是黑科技诶,而且海生是自己挑的,还满新奇的。...原创 2020-09-22 12:14:02 · 1976 阅读 · 0 评论 -
第16课:生活中的备忘模式——好记性不如烂笔头
用程序来模拟生活从剧情中思考备忘模式备忘录模式备忘录模式的模型抽象类图代码框架模型说明实战应用应用场景【故事剧情】 经过两三年的工作,Tony 学到的东西越来越多,业务也越来越熟,终于到了他该带领一个小组进行独立开发的时候了。作为小组负责人后的 Tony,工作自然就多了:要负责技术的选型、核心代码的开发,还要深度参与需求的讨论和评审;期间还会被...原创 2020-09-22 12:14:00 · 1448 阅读 · 0 评论 -
第17课:生活中的享元模式——颜料很贵必须充分利用
用程序来模拟生活从剧情中思考享元模式享元模式享元模式的模型抽象类图基于框架的实现模型说明设计要点优缺点应用场景【故事剧情】 团队的拓展培训是很多大公司都组织的活动,因为素质拓展培训能将企业培训、团队建设、企业文化融入到有趣的体验活动中。Tony 所在的公司今年也举行了这样的活动,形式是团体活动 + 自由行,团体活动(第一天)就是素质拓展和...原创 2020-09-22 12:13:59 · 1578 阅读 · 0 评论 -
第18课:生活中的外观模式——学妹别慌,学长帮你
用程序来模拟生活从剧情中思考外观模式外观模式外观模式的模型抽象类图模型说明设计要点优缺点实战应用应用场景【故事剧情】 Tony 有个爱好,喜欢跑步。因为住的离北体(北京体育大学)比较近,便经常去北体跑步,校园里环境优雅、场地开阔。正直金色九月的一天,Tony 一如往常的来到北体的开放田径场,但与往常不同的是 Tony 看到了成群的学生穿着...原创 2020-09-22 12:13:57 · 2005 阅读 · 0 评论 -
第19课:生活中的访问模式——一千个读者一千个哈姆雷特
用程序来模拟生活从剧情中思考访问模式访问模式访问模式的模型抽象代码框架类图基于框架的实现模型说明设计要点优缺点访问模式的优点访问模式的缺点实战应用应用场景【故事剧情】 光阴似箭,转眼间作为 IT 狗的 Tony 已在职场上混迹快五年了,都说五年一个瓶颈,Tony 能否跳出这个瓶颈,他心里也没底,但他总觉得该留下点什么了。Ton...原创 2020-09-22 12:13:56 · 1404 阅读 · 0 评论 -
第20课:生活中的设计模式——与经典设计模式的不解渊源
23 种经典设计模式的索引对照表设计模式的开山鼻祖 GoF 在《设计模式:可复用面向对象软件的基础》一书中提出的 23 种经典设计模式被分成了三组类别,分别是创建型模式、结构型模式和行为型模式。本书并未对这 23 种设计模式都进行了一一讲解,因为有一些设计模式在现今软件的开发中用的非常少!随着技术的不断革新与发展,设计模式也一直在发展,有一些模式已不再常用,同时却有一些新的模式在诞生。为方便熟...原创 2020-09-22 12:13:54 · 516 阅读 · 0 评论 -
第21课:生活中的设计模式——那些未完待续的设计模式
抽象工厂模板模式Demo代码框架类图应用场景桥接模式类图桥接模式应用案例解释模式解释模式类图应用案例随着技术的不断革新与发展,设计模式也一直在发展,有一些模式已不再常用,同时却有一些新的模式在诞生。本课程并未对这 23 种设计模式都进行一一讲解,因为有一些设计模式在现今软件的开发中用的非常少!而有一些却在面向对象中应用的太频繁,以至于我...原创 2020-09-22 12:13:53 · 344 阅读 · 0 评论 -
第22课:深入解读过滤器模式——制作一杯鲜纯细腻的豆浆
用程序来模拟生活从剧情中思考过滤器模式过滤器模式与职责模式的联系过滤器模式的模型抽象代码框架类图基于框架的实现模型说明设计要点优缺点实战应用应用场景【故事剧情】 腊八已过,粥已喝,马上就要过年了!别人家的公司现在都是开年会、发现金红包、发 iPone、发平衡车什么的,而 Tony 什么也没有,只能默默地躲在朋友圈的角落里,好在最后一...原创 2020-09-22 12:13:51 · 507 阅读 · 0 评论 -
第23课:深入解读对象池技术——共享让生活更便捷
【故事剧情】 大学的室友兼死党 Sam 首次来杭州,作为东道主的 Tony 自然得悉心招待,不敢怠慢。这不,不仅要陪吃陪喝还得陪玩,哈哈! 第一次来杭州,西湖必然是非去不可的。正值周末,风和日丽,最适合游玩。上午 9 点出发,Tony 和 Sam 打一辆滴滴快车从滨江到西湖的南山路,然后从大华饭店步行到断桥,之后是穿越断桥,漫步白堤,游走孤山岛,就这样一路走走停停,闲聊、拍照,很快就到了...原创 2020-09-22 12:13:50 · 474 阅读 · 0 评论 -
第24课:深入解读回调机制——把你技能亮出来
铁打的公司,流水的员工!职场中经常有新的员工来,也有老的员工走。为迎接新员工的到来,Tony 所在的公司每个月都有一个新人见面会,在见面会上每个新人都要给大家表演一个节目,节目类型不限,内容随意!只要把你的技能都亮出来,把最有趣的一面展示给大家就行。有的人选择唱一首歌,有的人拉一曲 Ukulele,有的人会说一搞笑段子,有的人会表演魔术,还有的人耍起了滑板,真是各种鬼才……用程序来模拟...原创 2020-09-22 12:13:49 · 338 阅读 · 0 评论 -
第25课:谈谈我对设计模式的理解
众多书籍之下为何还要写这一课程设计模式可谓是老生常谈的不能再老生常谈了,我曾经思考过很长一段时间要不要去写这系列的文章,因为这一主题的书籍实在太多了,网上免费的资料也非常的多。思考再三,最终决定写它,主要有以下几个原因:网上的资料虽然非常多,但就如同你所知:网上资料一大抄!内容极其雷同而且粗浅。讲设计模式的书籍虽然非常多,但用 Python 来描述的非常的少,有那么几本也是从国外翻译过来的...原创 2020-09-22 12:13:47 · 504 阅读 · 0 评论 -
第26课:谈谈我对设计原则的思考
如果说设计模式是面向对象编程的编程思想,那设计原则就是这些编程思想的指导总纲。SOLID 原则是众多设计原则中威力最大、最广为人知的五大原则,除 SOLID 原则外,还有一些更为简单实用的原则。SOLID 原则SOLID 是面向对象设计(OOD)的头五大基本原则的首字母缩写,由俗称「鲍勃大叔」的 Robert C. Martin 在《敏捷软件开发:原则、模式与实践》一书中整理收集而来。这些原则...原创 2020-09-22 12:13:45 · 522 阅读 · 0 评论 -
第27课:谈谈我对项目重构的看法
什么叫重构重构有两种解释,一种是作名词的解释,一种是作动词的解释。 名词:对软件内部结构的一种调整,目的是在不改变软件可观察行为的前提下,提高其可理解性,降低其修改成本。 动词:使用一系列重构手法,在不改变软件可观察行为的前提下,调整软件的结构。重构是软件开发过程中一个重要的事情之一,重构与重写的区别:重构:不是对已有代码的全盘否定,而是对不合理的结构进行调整,合理的模块进行改...原创 2020-09-22 12:13:44 · 842 阅读 · 0 评论 -
附录:Python 中 Metaclass 的原理
内置函数 type() 和 isinstance()type()1. 查看一个对象的类型2. 创建一个类isinstance()Metaclasstype 与 object 的关系自定义 Metaclass内置函数 type() 和 isinstance()在讲 Metaclass 之前,我们先了解一下几个相关的内置函数:type() 和 isi...原创 2020-09-22 12:13:42 · 309 阅读 · 0 评论