观察到的一切都是对象--面向对象的思考方式
定义
在对世界/系统进行观察/建模的时候,把它们看成一系列相互交流、互为影响的对象集(a set of objects)
世界是由相互作用的对象组成的
描述与构建由对象组成的系统
软件开发常规的两种思维方式:,面向对象和面向过程
OO strategy 适合解决不确定的时间,创新性的事件--------------------篮球赛
Structured Strategy 处理已知的事实,重要的条件都已知的场景---------------------流水线
编程语言
c语言是一种面向过程的思维方式:从main()函数的逐条语句开始执行、调用子程序就必须一层层返回,最终又返回main函数,系统需要完成的功能,分配到各个子程序,由main函数统一调度
面向过程侧重于考虑方法的编写(哪个方法做什么,不考虑所涉及到的数据在哪里)
面向对象则致力于将数据和方法做一个封装(分配一个对象做事,要考虑所需要的数据是否和它在一起)
通信
过程化解决方法通过信道传递数据,服务器端需要有专门的工具对接受的数据进行处理
面向对象解决方法通过信道传递对象(数据+对数据的处理方法)如web浏览器接收到的Java applet就是一个对象,误区
对象包装:把任意一段的过程化代码堆砌在一起,不是面向对象编程
面向对象的核心特征
object/class 对象/类
method/message 方法/消息
encapsulation 封装
inheritance 继承
interface/implement 接口/实现
polymorphism 多态
composition/aggregation 组合/聚合
abstraction抽象
advance OO concepts面向对象的原则
OO principle面向对象原理
Design pattern设计模式