zoukankan      html  css  js  c++  java
  • 【23种设计模式】之设计模式简介

    设计模式

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

    写下笔记,吸收更快

    什么是设计模式

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

    ——Christopher Alexander

    从面向对象谈起

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

      • 语言构造

      • 编译转换

      • 内存模型

      • 运行时机制

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

      • 面向对象

      • 组件封装

      • 设计模式

      • 架构模式

    深入理解面向对象

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

      • 封装:隐藏内部实现

      • 继承:复用现有代码

      • 多态:改写对象行为

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

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

    • 客户需求的变化

    • 技术平台的变化

    • 开发团队的变化

    • 市场环境的变化

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

    如何解决复杂性?

    1. 分解

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

    2. 抽象

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

    软件设计的目标

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

    总结

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

  • 相关阅读:
    [转]CR, LF, CR/LF区别与关系
    [转]Maven与nexus关系
    [转]Ubuntu默认使用root用户登录并免去输入密码
    [转]PL/SQL Developer 导入导出csv文件
    [转]关于胖客户端和瘦客户端的理解
    解决win7 安装完jdk7后,再安装jdk8出现的问题 has value '1.8', but '1.7' is required.
    [转]10 Awesome Indicator Applets for Ubuntu’s Unity Desktop
    简单的多对一传输ns2仿真
    论文阅读笔记 (2007-06-09)
    一个简单的ns2实验全过程
  • 原文地址:https://www.cnblogs.com/tingtingzhou/p/10672014.html
Copyright © 2011-2022 走看看