Java设计模式总结

  |   0 评论   |   0 浏览

何为设计模式?

  本人纵横江湖十余载,接触设计模式时间比较久,记得刚工作两年的时候就开始接触了,当时还在东软上班,那时候部门有免费的培训课程,其中就有这设计模式一课,由于当时工作年限不长,部门经理并没有批准我去参与这个课程,这也是一直让我很不爽的事,为啥新人就没权利接触设计模式?那时候就想,啥是设计模式?经过这么多年沉淀,领悟了其中部分的含义,设计模式好比冷兵器时代的武功秘籍,前人经过修炼总结下来的一套功法套路,供后人参考,理解其中的含义。如果大家都认可,大家都去学习,那么当你阅读别人代码的时候,一看到作者的代码设计,就能领悟其中的原理和思路,设计模式作用之一便是用来统一大家的这种思想套路,让你写的代码容易被别人理解。
  为啥会有设计模式?Java编程有一个大的原则(一共有6个原则,自行百度),可能大家都听过,叫“开闭原则”,何为开闭原则?开放扩展,关闭修改。意思是我的应用程序可以随着业务增长而扩展其中的实现,关闭修改就是当外部业务变化的时候,不要去修改以前实现好的代码(业务变化不是需求变化也不是bug修改,而是类似新业务扩展这样,对以前业务无影响)。开闭原则是最基本的原则,是我们设计程序的最基本要求,是Java代码可复用的核心思想。那么怎样去满足开闭原则呢?就得通过设计模式,好好的设计一下程序的结构了,通过使用设计模式,可以将应用程序的关键部分设计成可扩展,稳定性高,阅读性强。但是模式也不是乱用,适可而止,滥用设计模式等于画蛇添足,至于怎样一个标准来使用设计模式,这个仁者见仁智者见智,总之一个好的程序,结构清晰的同时具备低耦合、可读性(方便人阅读)、可扩展性(功能模块扩展容易)、可维护性(方便未来同行接手容易)。

设计模式分类

  设计模式怎么划分?当前流行哪些设计模式?这个问题以前也困扰过我,当时买了本书,叫《Head First设计模式》(推荐初学者可以读一下这本书)。这本书用自己的思路,去诠释了四人帮的设计模式理论,记得里面的例子讲得都比较幽默(老外的幽默,国人可能看起来很傻),从那时候开始接触到了四人帮,英文名叫GoF,全称叫Gun of Four,这几个人总结出来的设计模式,被称为GoF设计模式,涵盖了3大类23小类设计模式,是目前最流行也最通用的设计模式。可能后续接触的设计模式,或者是看别人开源的代码,都基本上是基于这种设计模式来设计的程序结构。如下图所示:
1598261133167702016.png
  其中虚线标注部分,是最近几年程序设计、读源码遇到得比较多的设计模式,这部分可以先学,其他设计模式可以后学。学习设计模式主要靠理解,靠运用,我觉得不能因为一个程序猿刚参加工作,就拒绝其学习设计模式,如果对编程有一定的理解,一开始就接触设计模式也不是不可以,设计模式就要多练,多通过实际的工作来运用,才能理解其中的真谛。
  创建模式:用于创建类的实例.但是和通过new来创建实例不同,这些模式提供了更加灵活的方式,是程序能够根据特定的情况创建特定的类。
  结构模式:在解决了对象的创建问题之后,对象的组成以及对象之间的依赖关系就成了开发人员关注的焦点,因为如何设计对象的结构、继承和依赖关系会影响到后续程序的维护性、代码的健壮性、耦合性等。
  行为模式:在对象的结构和对象的创建问题都解决了之后,就剩下对象的行为问题了,一个对象的行为,也就是说这个类到底要做什么事。如果对象的行为设计的好,那么对象的行为就会更清晰,它们之间的协作效率就会提高。


标题:Java设计模式总结
作者:michael
地址:https://blog.junxworks.cn/articles/2018/09/19/1537347065450.html