打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
程序猿必备系列:开发者的蓝图之初探分类

导语:前天端午想着努力再更一篇,没想到被各种杂事耽搁了,先给大家补个端午安康。上一篇忙着说设计模式有多重要了,反而关于设计模式本身介绍的有点少,这一篇给大伙好好说说设计模式的到底有哪些。

这次就不扯闲篇了,直接步入正题。

上一篇说到设计模式是四人帮(GOF)当初在《设计模式-可复用的面向对象软件元素》中所提出的,书中一共有 23 种模式用来解决面向对象的程序设计中所出现的各种问题。

当时那本书中针对的语言是 C++,虽然后来设计模式也变成了 Java 语言的宠儿,但归根结底只要是面向对象的语言都有必要掌握这些套路。

像 C 语言、Shell 语言这样主推面向过程的语言,设计模式就很少站出来说话了,没办法,谁让现在主流的设计模式都是从以 Java 为主的项目经验中抽象出来的呢。

但就像之前说的,只要是能面向对象的语言,设计模式都起到了重要的作用,像 PHP、Python 这样的脚本语言也不例外,设计模式也是一个合格码农应该具备的技能。

以我最为熟悉的 Python 为例,很多人都是把它当胶水语言,确实,它用来做胶水语言是真的方便,这也导致了很多人用它的时候都是以面向过程的方式编程。

何况 Python 的入门门槛低,用起来更灵活,在项目开发中所占的比重小,多以辅助为目的,久而久之,设计模式在 Python 开发中总是不成体系(可能是我见的少了)。

但你想成为一个成熟的程序猿我觉得就绝不能忽视设计模式,具体原因还是戳我下面那篇文章好了。

将程序中的变与不变分开,你真的懂我说的是什么?

话说回来,设计模式必须要是面向对象编程才行。对于我们敲代码的程序猿来说,使用设计模式,你就不能再从上到下的一条条去累加代码了,但面向对象的好,是你将原来面向过程的代码量缩减到原先的70%,甚至更少的时候才能体会到的。

具体到语言上,Python 和 Java 还是有很多不同的,影响最大的在我看来就是 Python 是所谓的无接口类型,定义接口将完全人为规定,在编程过程更需要自我约束,灵活是灵活,但多人合作的项目总不能全靠文档说明和注释去解释你的意图吧,相信效率的不满意会让你头疼很长时间。

网上已经有很多关于 Java 设计模式的文章书籍了,但是关于 Python 的文章书籍,虽然有很多大神也都提了,但是要么说的太不具体,要么总是站的高度太高,让人摸不着头脑。而这也是我做这个系列的原因。

害,废话不多说。下面再和大家谈谈设计模式的分类。

设计模式有低有高,低到日常的习惯技巧,高到框架架构,只要追究你在编程中的填坑原因,找到其中不变的部分,都可以归到设计模式。

以现在主流的分类方法,按照设计模式的目的用途可将其分为三大类:创建型(Creational)、结构型(Structural)和行为型(Behavioral)。

下面给大伙介绍一下分类后的设计模式。

创建型模式

这个类型的设计模式提供了创建对象的机制。这让程序从根本上更具有灵活性和可复用性。

  • 单例模式(Singleton Pattern

  • 原型模式(Prototype Pattern

  • 工厂方法模式(Factory Method

  • 抽象工厂模式( Abstract Factory


结构型模式


这个类型的设计模式关注类和对象的组合,介绍了如何让类和对象在组成更大的结构同时,还具有灵活和高效的特点。

  • 装饰模式(Decorator Pattern

  • 代理模式(Proxy Pattern

  • 外观模式(Facade Pattern

  • 组合模式(Composite Pattern

  • 桥接模式(Bridge pattern

  • 享元模式(Flyweight Pattern

  • 适配器模式(Adapter pattern


行为模式

这个类型的设计模式负责对象间的通信,介绍了不同对象之间是怎样交互和怎样分配职责。

  • 策略模式(Strategy pattern

  • 状态模式(State pattern

  • 命令模式(Command pattern

  • 责任链模式(Chain of responsibility pattern

  • 观察者模式(Observer pattern

  • 备忘录模式(Memento pattern

  • 迭代器模式(Iterator pattern

  • 解释器模式(Interpreter pattern

  • 中介者模式(Mediator pattern

  • 访问者模式(Visitor pattern

  • 模板方法模式(Template pattern

这么算下来,也有 22 种设计模式,Python 除了上面这些设计模式还有一些不是那么常见的模式,之后我也会补充过来,大家等着就好。


结尾

相信我,只有面向对象+设计模式强强联手,才能让你的代码变得更加可维护、可复用、可扩展。

但有一点你要记在心里:设计模式本身并不关心具体的实现细节,像算法和数据结构这样的东西完全由你这个施工者决定,只有将设计模式融会贯通到脑子里才行,一定不要死扣套路,那样做只会让你的代码变得乱七八糟。



本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
Python语言的优点及优势
程序员面试还怕设计模式,没说我没告诉你这个神奇的网站!
你真的了解Python吗?这些必须知道
C语言,去你的策略模式!
不要用面向对象来迷惑程序员新手
设计模式
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服