標籤:git lin 導致 linux 互動 images 西遊 變化 之間
面對過程的程式設計的核心是 過程(流水線式思維),過程即解決問題的步驟,面向過程的是設計就好比進行設計好一條流水線,考慮周全,什麼時候處理什麼東西。
優點:極大的降低了程式的複雜度
缺點:一套流水線或者流程就是 用來解決一個問題,生產汽水的流水線無法生產汽車,即便能,也得是大改,改一個組件,牽一髮動全身。
應用情境:一旦完成基本很少改變的情境,著名的例子有Linux,git,以及Apache HTTP Server等。
物件導向的程式設計的核心是 對象(上帝式思維),要理解對象為何物,必須把自己當成上帝,上帝眼裡世間存在的萬物皆為 對象,不存在的也可以創造出來。物件導向的程式設計好比如來設計西遊記,如來要解決的問題是吧經書傳給東土大唐,如來想瞭解這個問題需要四個人:唐僧,沙和尚,豬八戒,孫悟空,每個人都有各自的特徵和技能(這就是對象的概念,特徵和技能 分別對應對象的 資料屬性和方法屬性),然而這並不好玩,於是如來有安排了一群妖魔鬼怪,為了防止師徒四人在取經路上被搞死,又安排了一群神仙保駕護航,這些都是對象。然後取經開始,師徒四人與妖魔鬼怪神仙互動著直到最後取到真經。如來不會管石頭四人按照什麼流程去取。
優點:解決了程式的擴充性。對某一個對象修改,會立刻反應到整個體系中,如對遊戲中一個人物參數的特徵和技能修改都很容易。
缺點:可控性差,無法像面向過程的程式設計流水線的可以很精準的預測問題的處理流程和結果,物件導向的程式一旦開始就由對象之間的互動解決問題,即便是上帝也無法預測最終結果。於是我們經常看到一個遊戲人某一參數的修改極有可能導致陰霸的技能出現,一刀砍死3個人,這個遊戲就失去平衡。
應有情境:需求經常變化的軟體,一般需求的變化都集中在使用者層,互連網應用,企業軟體,遊戲等都是物件導向的程式設計大顯身手的好地方。
物件導向的程式設計並不是全部。對於軟體品質來說,物件導向的程式設計只是用來解決擴充性
python篇1.12---物件導向的程式設計