1.5 面向對象的思考方式
觀察到的一切都是對象--面向對象的思考方式
定義
在對世界/系統進行觀察/建模的時候,把它們看成一系列相互交流、互為影響的對象集(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設計模式
1.5 面向對象的思考方式