目录

为什么会有设计模式?

设计模式的定义

设计模式的元素

设计模式的学习和运用


在《周期》中作者这样描述过模式:“人类必须生活在现实世界中。我们寻找模式和规律,能够让我们活得更加舒服,也获利更多。”

为什么会有设计模式?

你曾经多少次有过这种感觉—你已经解决过了一个问题,但就是不能确切知道是在什么地方或怎么解决的?如果你能记起以前问题的细节和怎么解决它的,你就可以复用以前的经验而不需要重新发现它。然而,我们并没有很好记录下可供他人使用的软件设计经验。设计模式的目标是将设计经验以人们能够有效利用的形式记录下来。来复用设计经验,很多问题不必要再从头做起。

设计模式的定义

设计模式的起初还是来源于建筑业。设计模式的定义:“每一个模式描述了一个在我们周围不断重复发生的问题, 以及该问题的解决方案的核心。这样,你就能一次又一次地使用该方案而不必做重复劳动”(这个定义是Christopher Alexander 说的(Christopher Alexander,1936年10月4日生于奥地利维也纳)是加州大学伯克利分校的终身教授和承包商,同时也是建筑师。)尽管Alexander所指的是城市和建筑模式,但同样也适用于面向对向设计模式。最近理解同样也可以用于其他行业的模式,如投资寻找相应的模式和规律进而找到人生获胜的公式。

设计模式的元素

设计模式有四个基本的元素模式名称、问题、解决方案、效果。

1.模式名称:一个助记名,用一两个词来描述问题、解决方案和效果,便于同行间沟通交流。

2.问题:描述问题相关背景和问题的上下文,问题产生的前因后果,有时候描述设计模式的先决条件。

3.解决方案:问题解决方案,是设计的组成部分,描述了对象间的各自的关系和职责和协作方式。描述怎样通过一般的元素组合来解决问题的。

4.效果:描述模式应用的效果和使用模式的权衡问题。决策的过程也很重要。这个包含了两个重要的点,模式应用后的效果和选用模式如何去权衡的。、

设计模式的学习和运用

模式就像是一个模板,可以应用于多个场合来形成一种经验。不管是在建筑业,还是IT业,还是其他行业,模式都可以一次又一次去复用,尤其是历经过考验的成功的一些模式。在学习设计模式的过程中,一方面是学习软件行业已有的设计模式,另一方面学习如何记录软件设计或者其他方面的遇到的问题形成自己一个模式库。

我们努力想要看透人生,方法是识别模式,进而找到人生获胜的公式。

架构师之路—理解设计模式相关推荐

  1. android 链式结构,Android 架构师之路10 设计模式之责任链模式

    1. 责任链模式概念 1.1 介绍 客户端发出一个请求,链上的对象都有机会来处理这一请求,而客户端不需要知道谁是具体的处理对象.这样就实现了请求者和接受者之间的解耦,并且在客户端可以实现动态的组合职责 ...

  2. JAVA架构师之路十五:设计模式之策略模式

    JAVA架构师之路十四:设计模式之模板模式 策略模式 1. 策略模式 2. 优惠券案例 3. 支付案例 人生的游戏不在于拿了一副好牌,而在于怎样去打好坏牌,世上没有常胜将军,勇于超越自我者才能得到最后 ...

  3. JAVA架构师之路十六:设计模式之责任链模式

    JAVA架构师之路十五:设计模式之策略模式 责任链模式 1. 责任链模式 2. 登陆案例 3. 登陆案例优化 人生的游戏不在于拿了一副好牌,而在于怎样去打好坏牌,世上没有常胜将军,勇于超越自我者才能得 ...

  4. python爬虫架构师之路_一位资深 架构师大牛给予Java技术提升的学习路线建议

    一位资深 架构师大牛给予Java技术提升的学习路线建议 对于工作多年的程序员而言,日后的职业发展无非是继续专精技术.转型管理和晋升架构师三种选择. 架构师在一家公司有多重要.优秀架构师需要具备怎样的素 ...

  5. Android从程序员到架构师之路3

    本文学习自高焕堂老师的Android从程序员到架构师之路系列教学视频 40 - 认识线程(Thread)模式a 1. 线程(Thread)概念 所谓线程(Thread) 是指一串连续的执行动作,以达成 ...

  6. 从屌丝到高级架构师之路.

    从屌丝到高级架构师之路-. -. -. 上海名汇信息科技有限公司-–作者:黑色金属 书于杭州 2017-12-16 老一代程序员的苦语! 许多老程序员和我一样,天天忙,年年忙,也没成就感:写的程序对企 ...

  7. 架构师之路-写的不错

    架构师之路 转:http://www.uml.org.cn/zjjs/200903273.asp 1.引言 机算机科学是一门应用科学,它的知识体系是典型的倒三角结构,所用的基础知识并不多,只是随着应用 ...

  8. 程序员养成架构师之路

    原文:5ceo:洒落一地的阳光 .的---><程序员养成架构师之路> 怎样学习才能从一名Java初级程序员成长为一名合格的架构师,或者说一名合格的架构师应该有怎样的技术知识体系,这是 ...

  9. java架构师什么学校好_Java架构师之路:年薪八十万的架构师课程

    原标题:Java架构师之路:年薪八十万的架构师课程 不管是开发.测试.运维,每个技术人员心里都有一个成为技术大牛的梦,毕竟"梦想总是要有的,万一实现了呢"!正是对技术梦的追求,促使 ...

最新文章

  1. C#基础-类成员(Day7)
  2. 从单体应用转为分布式系统:来自Deliveroo的实践
  3. Tableau必知必会之如何快速制作 词云(文字云)
  4. SecureCRT使用
  5. linux用avk怎么提取字符,在Linux下进行视频音频格式转换提取等
  6. SpringMVC + Apache POI 实现WEB中Excel下载功能
  7. postman发送报文时请求时间超时因为什么_面试官说不要再问我三次握手和四次挥手是什么了...
  8. python格式化输出宽度对齐_python 中 字符串格式化示例,输出格式没有达到指定宽度,求帮忙!...
  9. java stringbuffer原理_深入理解String, StringBuffer, StringBuilder的区别(基于JDK1.8)
  10. 嵌入式系统--ARM微处理器概述
  11. 借助 OpenGL* ES 2.0 实现动态分辨率渲染
  12. 睡眠 应该用 a加权 c加权_?焦虑自测 ,看看你的焦虑程度到底有多深?是否影响睡眠?...
  13. Git工程区域与文件状态
  14. 【转载】阿里数据技术大图详解
  15. python矢量化运算_Python里面的矩阵与矢量化运算
  16. 计算器计算经纬距离_经纬距离计算器下载_经纬距离计算器官方下载-太平洋下载中心...
  17. 分层采样(stratified sampling)
  18. Framebuffer子系统【转】
  19. 四大维度,七大案例,300+测试问题,《腾讯手游测试实战手册》发布
  20. 【安卓笔记】自定义toggleButton

热门文章

  1. 聊斋2聂小倩java华语版,【聊斋故事汇】之聂小倩(篇二)
  2. 源码系列:基于FPGA的自动售货机设计(附源工程)
  3. Mac突然没有声音了,音频和视频都不能播放了。
  4. 关于磷酸铁锂电池充满电后电压回落的问题
  5. oracle锁表自动解锁,Oracle的锁表与解锁
  6. kali linux 上安装MySQL 8.0.16
  7. (四)微信小程序之实现轮番效果(swiper)
  8. 2023年最值得期待的“黑科技”有哪些?
  9. Python-OpenCV选择、提取感兴趣区域(ROI区域)
  10. 百分之二十用计算机怎么算,巧用百分里油耗计算器,节省汽车油耗