博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
[浪子学编程][读书笔记]-道法自然之设计方法
阅读量:6412 次
发布时间:2019-06-23

本文共 1062 字,大约阅读时间需要 3 分钟。

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

 

 

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

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

分类: ,
本文转自浪子博客园博客,原文链接:http://www.cnblogs.com/walkingboy/archive/2006/04/14/375152.html,如需转载请自行联系原作者
你可能感兴趣的文章
Kubernetes & Docker 容器网络终极之战
查看>>
DVWA系列之15 文件包含漏洞利用
查看>>
puppet on windows
查看>>
10个最酷的linux单行命令
查看>>
Windows 10 技术预览版
查看>>
Linux还是亲生的好,实战自制Linux操作系统
查看>>
Using Half-NAT Mode Load Balancer In Solaris 11
查看>>
分享Silverlight/WPF/Windows Phone/HTML5一周学习导读(2月27日-3月4日)
查看>>
【基础】华为设备链路捆绑大全实战精简版
查看>>
rpm包指定安装路径
查看>>
ORACLE 分区与索引
查看>>
酷暑下的发烧有感
查看>>
Nginx启动脚本
查看>>
利用Ossim系统进行主机漏洞扫描
查看>>
面试总结小谈
查看>>
挑战JavaScript正则表达式每日两题(2)
查看>>
卢松松:12306网站订票详细攻略
查看>>
如何用活字格定制监狱管理系统
查看>>
你不知道的币圈江湖,ETH(以太坊)VS比特币,V神看不上中本聪
查看>>
ActiveReports 9实战教程(2): 准备数据源(设计时、运行时)
查看>>