美文网首页
我抓住你了设计模式

我抓住你了设计模式

作者: AndyLeo_907f | 来源:发表于2019-07-22 07:31 被阅读0次

前言

写关于这一系列的文章主要是对自己这段时间学习设计模式的总结,并希望能够通过写文章的形式来加深对于设计模式的理解。以前接触学习设计模式都是通过网络上的博客一篇一篇的学习,没有系统的学习所有的设计模式,因此对于设计模式总是一知半解的。这里想通过一系列完整关于设计模式文章,减少大家查阅相关知识的时间,加深对设计模式的理解。学习设计模式时主要是要掌握设计的思想,理解这么设计背后的原因,只有掌握了设计模式的思想这样子才能在开发过程中使用得当。本系列文章会争取采用通俗易懂方式来表达,并会带有实际案例,来减少理解吸收成本。

谁适合读这一系列文章呢?

  1. 有一定的java开发经验(因为我是基于Java语言来写的)。
  2. 你想学习基础,想学习设计模式,以及这些设计模式上所遵守的OO设计原则。
  3. 想扩展自己的代码设计能力的。

什么是设计模式?

设计模式(Design pattern)是一种通用问题的解决方案,被面向对象的开发人员经常使用。设计模式是开发人员这么多年的开发过程中面对一般问题的总结出来的通用解决方案,这些设计的方式方法是许许多多的开发人员通过不断的试错、总结出来的。但是得提醒一句设计也不是万能,不能啥都用设计模式这样容易,不然容易增加代码的复杂度。

设计模式可以有好几种的分类方式,最广为人知的分类方式是根据模式的目的进行分类,分别为:创建型、行为型、结构型。

  • 创建型:涉及到对象的实例化,这类模式都会提供一个方法,将客户与要实例化的对象解藕。
  • 行为型:涉及类和对象如何交互,职责的分配。
  • 结构型:设计一套结构把类和对象组合进去

具体的分类如下图:

设计模式分类.png

为什么要使用设计模式?

  1. 共享词汇:可以减少你和你的团队的沟通成本
  2. 设计合理:模式是经过时间考验的可以保证其设计的合理性
  3. 可扩展性:一般都会遵守OO设计原则,保证代码的可扩展性
  4. 低耦合性:可以降低客户与结构的耦合

什么时候使用设计模式?

这是一个非常重要的问题:何时使用设计模式?在进行设计时,面对一个问题,如果你有两种方案1:利用设计模式;2:更简单的解决方案;这时你应该要优先选择更简单的解决方案。进行一个需求的设计时,你的目标是要尽可能的采用简单的解决方案,而不是想尽各种办法使用模式,因为使用模式是会带来一些副作用,增加代码的复杂度,加大对要接手的开发人员理解难度。如果你能够保持简单的设计,降低代码复杂度,减少理解成本,那么你会得到其他的开发人员欣赏和尊敬。只有在没有更简单的解决方案才开始使用设计模式来解决。但是在使用设计模式时一定要对该设计模式有深刻的理解,要清楚你所使用的设计模式所带来的后果,以及对其他部分的影响。只有在一切分析都很合理的情况下,那么你就可以愉快的使用设计模式了。

怎么使用设计模式?

在选择一种设计模式时,建议购买《设计模式-可复用面向对象软件的基础》这本书,当作设计模式的类目,当你需要使用设计模式时可以通过查阅类目给你一些知道方向,避免出现走弯路的情况。

  1. 首先对一个设计模式有一个大概的想法,知道这个设计模式是什么。
  2. 然后查找类目,参考“动机”和“适用性”小节的,确认想法没有错误。
  3. 浏览类目关于该模式的“结果”,确认使用该设计模式会带来什么样子的后果。
  4. 浏览类目中“结构”小节,了解类图,看每个类的作用。
  5. 如果还是不知道怎么使用,可以继续浏览“实现/范例代码”小节。

总结

对于设计模式我的理解是不要拘泥于概念,要真正的掌握其内在的思想,并且平常要多实践,多应用,做到融会贯通。平常看一些开源框架的源码时,多注意看看代码中是否使用设计模式,从而加深对设计模式的理解。最后在强调一遍设计模式不能滥用,考虑全面了在使用。

相关文章

  • 我抓住你了设计模式

    前言 写关于这一系列的文章主要是对自己这段时间学习设计模式的总结,并希望能够通过写文章的形式来加深对于设计模式的理...

  • 2020顺F面经

    1、线程池的设计里体现了什么设计模式享元模式2、说说你了解什么设计模式,知道责任链设计模式吗面向对象七大原则:单一...

  • JavaScript设计模式

    你将在本文中,了解什么是设计模式! 你将了解设计模式有什么优点! 你将了解两种设计模式-观察者模式和装饰模式! 一...

  • cocos2dx的几种常见设计模式

    设计模式——二段构建模式 设计模式在程序设计中会经常用到,也许你从来没有留意过设计模式,其实你却一直在使用设计模式...

  • 设计思想解读开源框架:“23种设计模式知识要点”都没读通过,还有

    设计思想解读开源框架,谈起设计模式,我想说,什么是设计模式?你真的理解了吗? 设计模式是一套被反复使用的、多数人知...

  • Android中涉及的模式

    我的Java设计模式-建造者模式 我的Java设计模式-观察者模式 重学设计模式之单例模式

  • 设计模式一:简介

    什么是设计模式 设计模式能使你成为更好的开发者,设计模式可以让你赚更多的钱,正确使用设计模式,可以节省时间,减少工...

  • Java学习笔记(3)-23种设计模式之单例模式

    每次看到招聘要求上大家都会写要熟悉设计模式,既然大家都在强调,那么也可想而知设计模式的重要性了,设计模式能够扩宽你...

  • 你真的了解iOS代理设计模式吗?

    你真的了解iOS代理设计模式吗? 你真的了解iOS代理设计模式吗?

  • JavaScript设计模式

    ## **JavaScript设计模式** ## **设计模式简介** 设计模式代表了最佳的实践,通常被有经验的面...

网友评论

      本文标题:我抓住你了设计模式

      本文链接:https://www.haomeiwen.com/subject/bdnblctx.html