03.06 程序员经常说的设计模式到底是什么?

影子书屋


程序员经常说的设计模式到底是什么?

设计模式是解决软件设计中常见问题的通用可重复解决方案。设计模式不是可以直接转换为代码的最终设计。它是如何解决可在许多不同情况下使用的问题的描述或模板。

最近喜欢玩魔方,自己探索魔方很难去快速完成,甚至是无法完成。需要根据公式,公式可以解决各种情况下的问题。而公式就是类似于程序员中说的设计模式。

设计模式的用途

设计模式可以通过提供经过测试的,经过验证的开发范例来加快开发过程。有效的软件设计需要考虑直到实施的后期才变得可见的问题。重用设计模式有助于防止可能引起重大问题的细微问题,并提高熟悉模式的编码人员和架构师的代码可读性。

通常,人们只了解如何将某些软件设计技术应用于某些问题。这些技术很难应用于更广泛的问题。设计模式提供了通用的解决方案,并以不需要特定细节的格式记录下来。

另外,模式允许开发人员使用众所周知的,易于理解的名称进行软件交互。常见的设计模式可以随着时间的流逝而得到改进,使其比临时设计更强大。


极客架构


设计模式是超越基本语法更高阶层的内容 ,它并仅限于固定的书本知识,还有开发者的思维模式。

当我们学习一门编程语言时,开始都会学习运算符、标识符、控制语句、函数等,千篇一律,但是这些又是学习一门语言最基本的。

但是,学会这些就能够写出优秀的代码吗?

显然,答案是否定的。

“会一门编程语言”和“写出优秀代码”中间相差十万八千里,这其中就是设计模式。

设计模式(Design pattern)是一套被反复使用、多数人知晓的、经过分类编目的、代码设计经验的总结。

这是搜狗百科的解释,也许有点绕,我们可以来提炼一下,其中关键词如下,

  • 反复使用

  • 经验

所以,它并不是千篇一律的东西,而是经过长久基类的经验。

设计模式中有很多,例如,代理模式、工程模式、原型模式、单例模式等。其实,我们不用这些也能够实现一项功能,但是,如果需要代码维护成本更低、后期扩展更加容易,那么就必须考虑使用设计模式。

例如,代理模式,Spring中使用的AOP(面向切面)主要使用的思想就是动态代理,它把原本纵向编程模式改成了横向编程,这样有哪些好处?

我们通过代理对外暴露一个接口,这样当我们要对原本功能扩展功能,例如,添加日志,就不需要再去改动源代码,只需要通过代理去为其动态的添加一些方法。当然,我们不使用代理,直接去修改源代码也可以实现,但是这样会有很大风险,比如,影响到原本功能、出现未知bug、部署成本较高等。

简而言之,设计模式是一种让开发项目更加高效、更加简便的一种软件设计思想。


Jackpop


设计模式(Design Pattern)是前辈们对代码开发经验的总结,是解决特定问题的一系列套路。即在某些场景下,针对某类问题的某种通用的解决方案。

项目中合理的运用设计模式可以完美的解决很多问题,今天我们简单说下创建型模式中的6个设计模式:

1、单例模式:某个类只能有一个实例,提供一个全局的访问点。

2、简单工厂:一个工厂类根据传入的参量决定创建出那一种产品类的实例。

3、工厂方法:定义一个创建对象的接口,让子类决定实例化那个类。

4、抽象工厂:创建相关或依赖对象的家族,而无需明确指定具体类。

5、建造者模式:封装一个复杂对象的构建过程,并可以按步骤构造。

6、原型模式:通过复制现有的实例来创建新的实例。

希望以上的回答对你有帮助!


北大青鸟中博软件学院


设计模式是解决软件开发某些特定问题而提出的一些解决方案也可以理解成解决问题的一些思路。通过设计模式可以帮助我们增强代码的可重用性、可扩充性、 可维护性、灵活性好。我们使用设计模式最终的目的是实现代码的 高内聚 和 低耦合。

项目中合理地运用设计模式可以完美地解决很多问题,每种模式在现实中都有相应的原理来与之对应,每种模式都描述了一个在我们周围不断重复发生的问题,以及该问题的核心解决方案,这也是设计模式能被广泛应用的原因。

总共有 23 种设计模式。这些模式可以分为三大类:创建型模式(Creational Patterns)、结构型模式(Structural Patterns)、行为型模式(Behavioral Patterns)。

创建型模式:对象实例化的模式,创建型模式用于解耦对象的实例化过程。

结构型模式:把类或对象结合在一起形成一个更大的结构。

行为型模式:类和对象如何交互,及划分责任和算法。


23种设计模式:


IT老田


设计模式就是根据无数人的经验打磨出来的用来解决问题的方法,也许不是最有效的,但因为是许多人的心血,所以偶尔取之是可以的。如果为了能够更好的运用设计模式而去刻意的练习,那么,下下之选!

编程本就是为了解决实际的问题而生的,如果为了编程而编程的话,那真的是有些悲哀了。所以如果一个问题产生了,就请先找到最有效的办法,即便这个最有效的办法,是自己想出来的。请大胆去做!


分享到:


相關文章: