设计模式
    什么是设计模式?
        通俗版
            解决一再发生的问题的通用方案
        专业版
            是一套被反复使用、多数人知晓的、经过分类的、代码设计经验的总结。使用设计模式的目的:为了代码可重用性、让代码更容易被他人理解、保证代码可靠性。 设计模式使代码编写真正工程化;设计模式是软件工程的基石脉络,如同大厦的结构一样。
    类图和语法差不多,如何快速识别代码属于哪个设计模式?
        情景
        问题-重复性问题-普遍性问题
        解决方案
            力的平衡:目标;约束
        意图;动机
        类图
        角色-协作
        描述-模式名称-共享词汇
        关联模式
        使用场景
        优缺点
        模式类目-创建-结构-行为
        模式使用最佳实践
    设计模式使用最佳实践
        保持简单,避免过度设计
        不要为了用而用模式
千万不要认为:如果没有使用模式解决某个问题,就不是经验丰富的开发人员
        确信系统未来会发生改变和+有实际的需要再使用模式
如果只是假想的改变,不要使用模式
        如果现在不需要模式,就别用
        重构的时间大就是模式的时间
        删除不需要的设计模式
        不用设计模式不代表不能实现功能,设计模式容易实现更有弹性的设计
    学习设计模式的重要性
        开发人员之间共享词汇
            模式背后的质量、特性、约束
            更少的词汇做充分沟通
            呆在设计圈子更久
            开发团队快速充电
            帮助初级开发人员迅速成长
        阅读开源项目源码理解更容易
        面试和考试频繁遇见
        指导普通开发工程师
        设计组件库和开发优秀的功能代码
        架构师必备技能
    设计目标
        4大目标
            维护性
            扩展性
            复用性
            灵活性
        其它
            有弹性
            健壮性/鲁棒性
    面向对象
        4大特性
            抽象
            封装
            继承
            多态
        接口与抽象类的区别
            接口和抽象类的区别.txt
        面向对象 VS 面向过程
            功能分解;隐错;责任
            思考方式
                概念;规约;实现
        贫血型OO VS 充血型OO
    设计模式最简UML
        类图
            类名、成员、方法、访问权限
            B派生自A,A泛化了B
            关联、聚合/聚集、组合/合成
            依赖
            关系强弱排序:组合>聚合>关联>依赖
            注释符
        交互图-时序图
            对象:类名
            时间轴、生命线、水平线调用
    设计原则12个
        封装变化-分开变化和不会变化的部分
        高内聚、松耦合/低耦合、有弹性的设计
        单一职责
            引起变化的原因,只有1个
        开闭原则
            对扩展开放,对修改关闭
        依赖倒置原则/针对接口编程/好莱坞原则
        里氏替换原则
            父类可以代替子类
        合成/聚合复用原则
            组合/委托优于继承
        迪米特法则
/得墨忒耳法则
/最少知识原则
            最小知识,朋友越少越好;降低成员访问权限
        接口隔离原则
            接口的方法高内聚
        DRY原则
            Don’t Repeat Yourself
        保持简单原则
        不要过度设计原则
    阅读开源项目源码必须掌握的设计模式
        工厂模式
模板模式
策略模式
代理模式
适配器
装饰模式
职责链模式
    23种设计模式Gof
        创建型6
解耦客户与需要实例化的对象
            单例模式
            简单工厂模式/静态工厂模式(不属于23种Gof设计模式)
            工厂模式
            抽象工厂模式
            建造者模式/生成器模式
            原型模式
        结构型7
把类或对象组合到更大的结构中
            代理模式
            适配器模式
            装饰着模式
            门面模式/外观模式
            桥接模式
            组合模式
            享元模式
        行为型11
类和对象如何交互及分配职责
            策略模式
            观察者模式/发布-订阅模式
            模板方法模式
            职责链模式
            迭代器模式
            命令模式
            状态模式
            访问者模式
            备忘录模式
            解释器模式
            中介者模式
    设计模式组合
        MVC模式=4个模式组合
            观察者-模型是被观察者,共享多视图
            策略模式-控制器是视图的行为
            组合模式-视图-组合节点-叶节点
            适配器模式-视图-模型-Android-DataAdapter
        泛型+反射+工厂模式
        模板方法模式+策略模式
        字符串配置+反射+工厂模式
        工厂模式+代理模式
        工厂模式+策略模式
        装饰者模式+访问者模式
        迭代器模式+组合模式
        命令模式+备忘录模式
    书单
        大话设计模式.pdf
        图解设计模式_结城浩著_杨文轩译_2017.pdf
        Head First设计模式_2007.pdf
        设计模式之美_王铮.极客时间
        设计模式_GoF.pdf
        Java与模式_阎宏.pdf
        Java设计模式_Steven John_张逸译_第2版_2012.pdf
        设计模式解析_AlanShalloway_第2版.pdf
        重构与模式_Joshua Kerievsky.pdf

学好设计模式的思维导图相关推荐

  1. 15分钟带你了解前端工程师必知的javascript设计模式(附详细思维导图和源码)

    前言 设计模式是一个程序员进阶高级的必备技巧,也是评判一个工程师工作经验和能力的试金石.设计模式是程序员多年工作经验的凝练和总结,能更大限度的优化代码以及对已有代码的合理重构.作为一名合格的前端工程师 ...

  2. go设计模式思维导图

    go设计模式思维导图

  3. 设计模式(Design Pattern)详细整理(含思维导图)

    设计模式(Design Pattern) 设计模式(Design pattern)代表了最佳的实践,是软件开发人员在软件开发过程中面临的一般问题的解决方案.这些解决方案是众多软件开发人员经过相当长的一 ...

  4. 项目管理大法归档 - 思维导图、原型工具、接口测试、设计模式、版本管理、单元测试、持续集成、代码审查、Bug 跟踪

    项目管理大法归档 - 思维导图.原型工具.接口测试.设计模式.版本管理.单元测试.持续集成.代码审查.Bug 跟踪 太阳火神的美丽人生 (http://blog.csdn.net/opengl_es) ...

  5. 零基础如何学好简笔画?—我用思维导图告诉你!

    零基础如何学好简笔画? 思维导图应该怎么画? BY:铃铛子 下面我将从看.思.画三个角度来说明--零基础如何画好简笔画. 1.画出中心图. 1 2.画出标题,标题环绕中心图,为一体. 2 3.写出关键 ...

  6. 票务系统思维导图_最全思维导图分享,告诉你如何系统的学好软件测试。

    用一张图告诉你软件测如何学,如何系统的学,如何学得更好.全篇干货,值得收藏,希望可以帮到大家. 开始分享之前,先发个牢骚,经常看到有人在讲软件测试简单,我就呵呵了,不懂就别乱下结论,真正能把软件测试给 ...

  7. 地理防灾减灾思维导图_17张思维导图,让你轻松学好高中地理必修一

    高中地理必修一是整个高中教学的难点和重点,对于自然地理的学习,大家可能会感觉头疼,因为过于抽象的空间和思维.但这块"硬骨头"必须啃下来,因为必修一的知识,对于后期的学习起到至关重要 ...

  8. 设计模式—适配器模式(思维导图)

    建议将思维导图保存下来观看,或点击这里在线观看

  9. 设计模式——代理模式(思维导图)

    建议将思维导图保存下来观看,或点击这里在线观看

最新文章

  1. 关于CSS的长度单位及颜色表示
  2. 实习生笔试面试题总结
  3. TCP与UDP之间的区别
  4. 活动目录从入门到精通
  5. 120分的转录组试题,你能得多少
  6. 自定义标题栏右键菜单
  7. javaweb 初学建议
  8. Openstack虚拟机实例备份方案测试
  9. 本人出版《Java Web 项目开发案例实战—Spring Boot+Mybatis+Hibernate+Spring Cloud》
  10. 修改SAP下载文件路径
  11. 字体大宝库:40套为网页设计师准备的时尚字体(下篇)
  12. 0到1认识计算机:通俗讲解计算机工作原理
  13. html背景图片加载慢,javascript – 如何加快我网站的背景图片加载速度?
  14. 使用 ESP-Prog / Jlink 进行 JTAG 调试时的常见错误及解决办法
  15. 华为开发者大会主题演讲:3D建模服务让内容高效生产
  16. line-height绝对值和相对值的区别
  17. Google Chrome 中国官网最新版离线安装包下载地址
  18. Java毕设项目-OA办公系统
  19. 关于global_step参数
  20. 编写程序,输入一个字符,若是大写字母,转换成小写字母,若是小写字母,则转换成大写字母输出。

热门文章

  1. 高龄白菜java学习第八十九天(java数据结构和算法(10))
  2. java面试题题库大全800题
  3. EasyDSS如何利用集群部署实现AR直播大码率高存储传输需求?
  4. 上海宝付风雨无阻 宝付支付之路的劈波斩浪
  5. Mask Scoring R-CNN论文阅读
  6. 手把手教学Linux下oracle11g自动化安装脚本编写
  7. TextView的走马灯效果
  8. 【计算机网络大题】一个自治系统有6个局域网,其连接图如下图所示。LAN1至LAN6上的主机数分别为:10、12、240、110、50和20台。该自治系统分配到的IP地址为161.26.118.0/23
  9. 球半足球分析,竞彩瑞典超:马尔默VS赫尔辛堡 06月28日
  10. 【论文合集】RGBD Semantic Segmentation