Skip to content

1 引言

Zhimin Xu edited this page Feb 19, 2020 · 1 revision

1.1 程序员应具备的两种思维

底层思维:

  • 语言构造
  • 编译转换
  • 内存模型
  • 运行时机制

抽象思维:

  • 面向对象
  • 组件封装
  • 设计模式
  • 架构模式

1.2 面向对象

向下:

  • 封装,隐层每部实现
  • 集成,复用现有代码
  • 多态,改写对象行为

向上:

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

特征:

  • 隔离稳定与变化
  • 对象各司其职,即责任的抽象
  • 封装行为与数据
  • 提供可被使用的公共接口

1.3. 软件设计复杂性

1.3.1 复杂源于变化

  • 客户需求会变
  • 技术平台会变
  • 开发团队会变
  • 市场环境会变

1.3.2 如何解决复杂性

  • 分解,即分而治之
  • 抽象,忽略非本质细节

1.3.3 软件设计的目标

软件设计的金科玉律:复用!!!

Clone this wiki locally