【23种设计模式】之设计模式简介

设计模式 这几天在看GoF的《设计模式——可复用面向对象软件的基础》,发现晦涩难懂,在网上搜索视频教程,搭配学习。李建忠老师讲的”设计模式“教程,循序渐进,非

设计模式

这几天在看GoF的《设计模式——可复用面向对象软件的基础》,发现晦涩难懂,在网上搜索视频教程,搭配学习。李建忠老师讲的”设计模式“教程,循序渐进,非常棒。

写下笔记,吸收更快

什么是设计模式

每一个模式描述了一个在我们周围不断重复发生的问题,以及该问题的解决方案的核心。这样,你就能一次又一次地使用该方案而不必做重复劳动

——Christopher Alexander

从面向对象谈起

  1. 底层思维:向下,如何把握机器底层,从微观理解对象构造

    • 语言构造

    • 编译转换

    • 内存模型

    • 运行时机制

  1. 抽象思维:向上,如何将我们的周围世界抽象为程序代码

    • 面向对象

    • 组件封装

    • 设计模式

    • 架构模式

深入理解面向对象

  1. 向下:深入理解三大面向对象机制

    • 封装:隐藏内部实现

    • 继承:复用现有代码

    • 多态:改写对象行为

  2. 向上:深刻把握面向对象机制所带来的抽象意义,理解如何使用这些机制来表达现实世界,掌握什么是“好的面向对象设计”

软件设计复杂的根本原因——变化

  • 客户需求的变化

  • 技术平台的变化

  • 开发团队的变化

  • 市场环境的变化

   变化不断冲击软件结构,摧毁我们的设计!

如何解决复杂性?

  1. 分解

    分而治之,大问题->多个小问题,复杂问题->多个简单问题

  2. 抽象

    由于不能掌握全部的复杂对象,我们选择忽视它的非本质细节,而去处理泛化和理想化了的对象模型

软件设计的目标

什么是号的软件设计?软件设计的金科玉律:复用!!!

总结

在软件开发中,像我这样的菜鸟,做的最多的就是复杂粘贴代码,但这并不是有效的复用,也不是好的是编码风格。设计模式将软件设计中重复遇到的问题,总结出一个个模式,每个模式代表对应问题的核心解决方案,这样我们可以重复使用该方案。