[浪子学编程][读书笔记]-道法自然之设计方法

简介:

道法自然-面向对象实践指南

 

 

  • 设计方法:面向过程 vs. 面向对象
    • 设计方法
      • 面向过程
        • 优点
          • 结构简单
          • 开发速度快
        • 缺点
          • 全局变量多,各个功能函数共同访问,需求变更时改动量大,易遗漏
          • 函数耦合度大,提取公共函数则导致函数数量剧增,调用关系繁冗不堪
          • 回调函数无法预知,管理困难
      • 面向对象
        • 优点
          • 真实模拟现实事务特征
          • 耦合度低
          • 复用性、扩展性高
        • 缺点
          • 结构复杂
          • 初期开发速度相对较慢
      • 剑在我心
        • 面向对象
          • 软件需要较强的复用性
          • 软件需要较强的扩展性
        • 面向过程
          • 规模小
          • 没必要考虑扩张性,复用性
    • 设计质量
      • 衡量标准
        • 是否满足功能性需求
        • 可读性
        • 可复用性
        • 可扩展性
        • 可维护性
      • 具体标准
        • 高内聚
          • 一个模块、类或函数所承担职责的自相关程度
        • 低耦合
          • 模块&模块之间、类&类之间、函数&函数之间关系的亲密程度
      • 实际操作
        • 单元测试
          • 测试环境是否可独立
    • 误入歧途
      • 与面向过程的设计方法相比,使用面向对象的方法设计出来的软件一定具有更高的质量
      • 只要学好某门面向对象语言,就能精通面向对象的设计方法
    • 对象&模式
      • 面向对象
        • 封装
          • 聚合同一责任的相关信息
          • 反映某一事物的共性
        • 继承
          • 正向理解
            • 子承父业
          • 反向理解[注1]
            • 泛化(Generalization)
            • 为了能统一处理各个具体的事物而抽象出来的此类事物具有的共同特征
        • 多态性[注2]
          • 貌似调用抽象类的方法
          • 实际执行具体类的真实处理过程
      • 设计原则
        • 开闭原则(OCP)
          • 一个模块对扩展应该是开放的,对修改应该是关闭的
        • 完全替换原则(里氏代换原则LSP)
          • 派生类应该能完全替换掉基类
        • 依赖倒置原则(DIP)
          • 依赖于抽象,而不依赖于具体
        • 非循环依赖原则
          • 包&包之间不能有循环依赖关系
        • 只实现你真正需要的,不要去实现你认为需要的
        • 不要重复自己
          • 任何代码都只出现一次
        • 保持简化的设计(KISS原则)
        • 为人写代码,而不是为机器写代码
          • 最好是写自注释的代码
    • 生命周期
      • 瀑布模型
        • 需求分析
        • 概要设计
        • 详细分析
        • 编码实现
        • 单元测试
        • 继承测试
        • 运行维护
      • 迭代模型
        • 迭代周期1
          • 分析
          • 设计
          • 编码
          • 测试
        • 迭代周期2
          • 分析
          • 设计
          • 编码
          • 测试
        • 迭代周期N
          • 分析
          • 设计
          • 编码
          • 测试
    • 参考资料


图示:
o_%E9%81%93%E6%B3%95%E8%87%AA%E7%84%B6-%



本文转自浪子博客园博客,原文链接:http://www.cnblogs.com/walkingboy/archive/2006/04/14/375152.html,如需转载请自行联系原作者
目录
相关文章
|
6月前
|
存储 算法 C++
C++初阶之一篇文章教会你list(模拟实现)(上)
这个表中列出了C++标准库中list容器的一些成员类型定义。这些类型定义是为了使list能够与C++标准库的其他组件协同工作,并提供一些通用的标准接口。每个成员类型
|
6月前
|
C++
[学习][记录] c++语言:从放弃到入门 <二>多态
[学习][记录] c++语言:从放弃到入门 <二>多态
|
6月前
|
C++
[学习][笔记] qt5 从入门到入坟:<三>添加动作
[学习][笔记] qt5 从入门到入坟:<三>添加动作
|
6月前
|
存储 安全 C++
C++初阶之一篇文章教会你list(模拟实现)(下)
4.swap void swap(list<T>& x) { std::swap(_head, x._head); // 交换两个链表的头结点指针 } 这是 list 类的成员函数 swap,它用于交换两个链表的内容。
|
10月前
|
前端开发 测试技术 数据处理
如果在准备面试,请务必看看这道题,前端编码题中的集大成者,异步sum/add
如果在准备面试,请务必看看这道题,前端编码题中的集大成者,异步sum/add
80 0
|
11月前
PTA-基础编程题目集(函数题)
PTA-基础编程题目集(函数题)
121 0
|
数据采集 存储 传感器
高级模拟输入VIs编程笔记
高级模拟输入VIs编程笔记
71 0
(思维)(必要做题步骤)(皮卡丘与 Codeforces )D - 先来签个到
(思维)(必要做题步骤)(皮卡丘与 Codeforces )D - 先来签个到
75 0
|
算法 C++
算法基础系列第三章——一文详解DFS(全排列演示带入)
算法基础系列第三章——一文详解DFS(全排列演示带入)
241 0
算法基础系列第三章——一文详解DFS(全排列演示带入)
|
算法
重温算法之三数之和
双指针的查找使用范围很广,也是必须掌握的一种解题方案,由上题比对我们也可以看到,在算法中要考虑到多种情况,如果遗漏掉某一些环节,就有可能发生异常,所以算法还是对思维严谨性要求比较高的,所谓失之毫厘差之千里。
99 0
重温算法之三数之和

热门文章

最新文章