A1 何谓面向对象
面向对象:OOP(Object Oriented Programming)
面向对象编程:OOPL(Object Oriented Programming Language)
其中有两个重要概念:类(class)、对象(object)
第一个真正意义上的面向对象编程语言:Smalltalk
1.1 面向对象编程
面向对象编程时一种编程范式或编程风格。
它以类或对象作为组织代码的基本单元,并将封装、抽象、继承、多态四个特性,作为代码设计和实现的基石。
1.2 面向对象编程语言
面向对象语言是支持类或对象的语法机制。
并有现成的语法机制,能方便地实现面向对象编程四大特性(封装、抽象、继承、多态)的编程语言。
使用面向对象编程语言写出来的代码不一定是面向对象编程风格的。
A2 如何判断是面向对象编程语言
从字面上看:
面向对象编程按最简单和最原始的方式来理解,就是将对象或类作为代码组织的基本单元,来进行编程的一种编程范式或编程风格,并不一定需要封装、抽象、继承、多态这四大特性的支持。
粗略概念:
只要某种编程语言支持类或对象的语法概念,并且以此作为组织代码的基本单元,那就可以被粗略地认为它就是面向对象编程语言了。
至于对四大特性的支持、取舍、优化则可不作为判定标准。
不要下死定义和学院派。
A3 面向对象分析和面向对象设计
面向对象分析:OOA(Object Oriented Analysis)
面向对象设计:OOD(Object Oriented Design)
面向对象软件开发经历的三个阶段:OOA、OOD、OOP(分析、设计、编程实现)
面向对象 ----> 围绕对象或者类进行需求分析和设计。
分析设计两阶段的产出:类的设计
- 程序被拆解为哪些类
- 每个类有哪些属性方法
- 类与类之间如何交互
与其他分析和设计比较
- 更具体
- 更贴近代码
- 更顺利地过度到面向对象编程环节
OOA:做什么
OOD:怎么做
OOP:翻译成代码
A4 UML?!
统一建模语言:UML(Unified Model Language)
沟通工具,但学习和掌握的成本较高。
A5 相关
上集:设计模式之总述
下集:面向对象之特性
参考文献
极客时间:设计模式之美.王争。