设计模式,你学废了吗?

1.【what】什么是设计模式?

设计模式:麻烦当下,方便将来。像是编程的“编法23计”

最开始接触编程,所有的代码文件只有一个main()方法。。。🚬

不堪回首。

慢慢的学了函数、学了递归、学了面向对象、开始追求可维护性、可扩展性

渐、总结编码经验


1.1 是代码设计经验,是典型解决方案

  • 为了可重用代码,提高代码的可扩展性可维护性

  • 是软件设计中常见问题的典型解决方案。

1.2 和算法的区别

算法更像是菜谱: 提供达成目标的明确步骤。

而模式更像是蓝图: 你可以看到最终的结果和模式的功能, 但需要自己确定实现步骤。

1.3 是常见问题的工具箱

其中的工具就是各种经过实践验证的解决方案

即使你从未遇到过这些问题, 了解模式仍然非常有用, 因为它能指导你如何使用面向对象的设计原则来解决各种问题。

2.【why】为什么会有设计模式?

因为要考虑以后要如何偷懒。

这个就没有解释的必要了吧。

3.【which】有哪些设计模式?

根据我从网络查询的结果:

3.1 根据其设计模式意图或目的来分类

  • 创建型模式(Creational Pattern)

    提供创建对象的机制, 增加已有代码的灵活性和可复用性。

  • 结构型模式

    介绍如何将对象和类组装成较大的结构, 并同时保持结构的灵活和高效。

  • 行为模式

    负责对象间的高效沟通和职责委派。
    请添加图片描述

3.2 创建型模式(Creational Design Pattern)

将软件模块中对象的创建和对象的使用分离。

创建型模式在创建什么(What),由谁创建(Who),何时创建(When)等方面都为软件设计者提供了尽可能大的灵活性。

创建型模式隐藏了类的实例创建细节,通过隐藏对象如何被创建和组合在一起达到使整个系统独立的目的

具体有这5个:
在这里插入图片描述

1.简单工厂模式(Simple Factory)

2.工厂方法模式(Factory Method)

3.抽象工厂模式(Abstract Factory)

4.建造者模式(Builder)

5.原型模式(Prototype)

6.单例模式(Singleton)

3.3 结构型模式(Structural Design Patterns)

在这里插入图片描述

3.4 行为模式(Behavioral Design Patterns)

在这里插入图片描述


日后用到具体模式再展开说说。

4.【how】如何选择设计模式?

阿尔伯特· 爱因斯坦曾经说:“ 提出一个问题往往比解决一个问题更重要。"

所以这个问题先提出来,目前实践的太少,回答不了🚬。

5.【!!】不当使用设计模式

“如果你只有一把铁锤, 那么任何东西看上去都像是钉子。”

这个问题常常会给初学模式的人们带来困扰: 在学习了某个模式后, 他们会在所有地方使用该模式, 即便是在较为简单的代码也能胜任的地方也是如此。

小彩蛋

  1. Refactoring Guru 设计模式学习网站 | 国外的一个网站,建立的初衷,是帮助开发者以更为简单便捷的方式,迅速掌握各个设计模式的学习。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

adingable

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值