从今天开始记录设计模式相关知识。在后续的文章中,我会尽量用生活中熟悉场景作为例子解释。当你真的学完每一个设计模式,并有过一些思考,会发现设计模式不再枯燥乏味,生活处处都会有它的身影。
另外,在技术领域,设计模式大量存在于各类主流开源框架中,其中以Spring,Mybatis等为典型代表,设计模式在其中被运用的炉火纯青。后续我也会挑选一些自己了解过的源码结合着聊。当你看懂其中的运用,你会不由赞叹设计者构思之精巧。
总体来讲,我希望我的文章不会是循规蹈矩,严肃死板的,以一种比较轻松、随意的风格进行的。文章的篇幅尽量简短精炼,能用一句话讲清楚绝不赘述。而且设计模式中,其实常用的模式就那么几种,所以我写的过程会有主次之分,重要我会详解,简单的或者几乎不用的模式我就一带而过了。当然如果大家有啥好的建议也可以告诉我。
今天是开篇导言,不涉及具体的模式的内容讲解,但是开宗明义,我还是想简单讲一下设计模式相关的概念。
❓设计模式到底是什么?
在这里我就不把设计模式的概念复制一遍了,我写着累,你们看着也累,而且前面说了,这个系列文章我尽量想用比较轻松、随意的风格写。总结起来就一句话,设计模式就是一些过去技术的大师们总结出来的一系列写代码的套路
大佬们经过实践总结又将其这些套路分为三类,创建型、结构型、行为型
顾名思义,创建型模式,是为了创建对象使用的,至于为什么创建个对象(直接new一个不就完事了吗)还需要如此多不同的套路,后续你就知道,这边不赘述。结构性模式,是用来组织不同的小对象,从而变成更大更复杂结构的对象。行为型模式,是用来控制协调不同的对象的运行流程,因为实际开发场景下,不可能是孤零零一个对象在运行,会涉及多个对象交互,这中间的协调工作就会使用到行为型模式。
每一类型的模式都包含多个具体模式,如下图。后续每篇文章都会对其中一个模式做详解剖析,这边就不再赘述。

❓这些套路到底好在哪里?

很多人学设计模式觉得很难,很重要原因是,不知道这个模式到底好在哪里?解决了什么痛点?我能用它来干啥?所以只能生搬硬套。其实模仿也是无可厚非的,进步就是从模仿优秀者开始的。但是如果想要能驾驭一门知识,还是需要了解其本质的。
所以这边需要提一下一个跟设计模式紧密相关的概念——面向对象的七大设计原则。其实,如何评判一个设计模式好坏,就是用这七个原则来衡量的。这些原则有开闭原则、里氏替换原则、依赖倒置原则、单一职责原则、接口隔离原则、迪米特法则、组合聚合复用原则。还是比较抽象的,但是我这边就不展开了,大家也没必要去死记硬背这些原则,没意义。后续在讲到每个设计模式的优缺点时候,我会穿插提到这些设计原则,到时再做详解。

❓设计模式一定需要用吗?
这边先泼个冷水,这个设计模式系列你看完,你还真不一定能立刻用上,甚至有的时候你用了还是画蛇添足,会给应用带来一些不必要的问题和麻烦。尴尬…设计模式对不同层级的程序(应用层级、类库层级、框架层级)重要性不一样。设计模式更多可能会用在一些类库和框架的设计,或者对老项目重构,在业务逻辑开发中使用的比较少,甚至会引入不必要的复杂度。
当用则用,不合适,或者感觉没把握,千万不要强上!?当你的开发受到阻碍,亟需一条出路,哎,这个时候设计模式可以登场了…

❓那这是为什么呢?
因为像类库框架这类产品,会被不同的人大量重复使用,所以对其重用性、扩展性、灵活性有很高的要求。而对于普通的业务逻辑开发,这方面要求较低。

❓怎么办?
还能怎么办?学呗…?下一篇我就会开始写第一个设计模式——单例模式,让咱们一起探讨设计模式的奥秘吧。不见不散。??

一行小字…

我还没用过lambda,有人这样说…
先看设计模式 然后学lambda 然后告诉你 很多设计模式可以用lambda解决

让设计模式飞一会儿|①开篇获奖感言相关推荐

  1. “2012年度IT博客大赛”获奖感言--梦想、学习、坚持、自信、淡定

    今年有幸参加"2012年度IT博客大赛",并且进入了前十强,大赛组委会让前十强选手写一下获奖感言.自开博以来,已经有一年半的时间,刚好籍此机会回顾一下写博历程.首先要感谢<老 ...

  2. 2011年度十大杰出IT博客获奖感言

        2011年度十大杰出IT博客获奖感言 在各位评委.网友的支持下,我的博客从前50名中脱颖而出跻身10强,得到这个消息之后心中充满了喜悦.在这里要感谢51CTO为大家提供这样一个良好的展示平台. ...

  3. 2008 微软IT英雄人物获奖感言

      感谢51CTO的每一位工作人员和编辑,感谢每一位51CTO的博友,感谢每一位51CTO和我参与的论坛的朋友,感谢我的妻子和家人!因为你们的帮助我获得了微软IT英雄人物的称号,我将用更多的文章回报这 ...

  4. 让电影票房飞一会儿,五一换个姿势重温经典

    距离五一小长假,还有不到20个小时!和我们一起迎接五一的,还有14部影片,号称史上最挤五一档!小编没有说错,"最挤"而不是"最强". 五一电影预售票房已经出炉, ...

  5. 第三人称计算机获奖感言,个人获奖感言50字第三人称

    求一篇第三人称的获奖感言关于亲情小组,200字. 急急急急急急 他是滋润亲情的雨露,他们是亲情的守卫者,他们是亲情的象征. 他们共同努力,创造了小组的辉煌. 他们之间的亲情,永无隔阂,获得了我们共同的 ...

  6. 计算机设计大赛感言,计算机编程比赛获奖感言.doc

    计算机编程比赛获奖感言 尊敬的各位领导.各位老师.同学们: 早上好!今天我非常高兴能代表参加计算机编程比赛获奖的同学站在这里发表获奖感言.在这次比赛中我获得了二等奖,虽然不是十分满意,但仍然感到高兴. ...

  7. 第三人称计算机获奖感言,玄彬获奖感言感谢女友孙艺珍 惹众网友羡慕

    23日下午,玄彬在2020 APAN STAR AWARDS上获得大奖.在获奖感言中感谢了孙艺珍.这是自从月初承认恋情后,玄彬首次在公开场合提及女友孙艺珍哦. 배우 현빈이 열애 인정 후 공식 석상 ...

  8. 核桃编程C语言,核桃编程毕业设计获奖感言?

    写作点拨:首先,要扼要表达一下自己的获奖心情. 其次要简单而全面地对你获奖给予过帮助的师长.父母.同学.朋友甚至观众(要具体看你得的是什么奖而定)等等. 第三是要阐述一下自己对未来的目标或设想,表示要 ...

  9. 第十三届蓝桥杯国赛真题 PythonB组 复盘以及获奖感言(国一!!!)

    第十三届蓝桥杯国赛真题 PythonB组 复盘以及获奖感言(国一) 文章目录 第十三届蓝桥杯国赛真题 PythonB组 复盘以及获奖感言(国一)

最新文章

  1. Java程序员高效开发必备工具,其中有你的最爱吗?
  2. 友盟渠道统计mysql_cnzz友盟怎么安装网站统计代码监控网站流量
  3. feedburner怎么用_FeedBurner PRO 現在免費使用
  4. sql server 跟踪_SQL Server作业性能–跟踪
  5. 自动驾驶——图像识别的学习笔记
  6. angular要多久学会_成为优秀Angular开发者所需要学习的19件事
  7. GPU大百科全书 第二章 凝固生命的光栅化
  8. Win9x 与 WinME 磁盘共享密码破解实战
  9. QQ、MSN、淘包旺旺、Skype临时对话的html链接代码
  10. 计算机组成原理——存储器容量扩充
  11. MacDonalds 翻译成“麦当劳”为什么好?英语翻译技巧E
  12. java实现华氏温度和摄氏温度互相转换
  13. python的运行方式有哪两种 有何区别_python程序的两种运行方式是什么
  14. java数组初始化0_Java自学-数组 初始化数组
  15. Coursera | Andrew Ng (01-week-2-2.17)—Jupyter _ ipython 笔记本的快速指南
  16. TCGAbiolinks的使用
  17. 电子科技大学 易查分网站 爬虫 批量爬取成绩
  18. javaweb 从数据库读取数据的详细操作
  19. 将 时间戳 转为 任意日期格式
  20. Traingview MACD自定义指标颜色修改

热门文章

  1. 如何判定微软鼠标真伪
  2. 中南财经政法大学计算机实践试题及答案,中南财经政法大学2010计算机应用基础期末考试试卷...
  3. 如何用天纵手机APP快速开发框架开发手机APP
  4. python线段树编写,很冗长,不过不难理解。
  5. Lombok 介绍 消除Java的冗长
  6. java计算机毕业设计网络游戏论坛平台源码+系统+数据库+lw文档+mybatis+运行部署
  7. 040几种原生手工封装UUID组件的方案
  8. 【随机过程】t分布、卡方分布、F分布、均匀分布、正态分布、指数分布、几何分布、二项分布、泊松分布、0-1分布等分布的分布律、期望、方差和特征函数汇总
  9. python加粗_python 加粗
  10. 股市大跌下的逆向思维