編程思想與生活經驗

1,內聚算法

程序=數據+操做編程

       =數據結構+算法(PASCAL之父Nicklaus Wirth)數據結構

       =對象+消息框架

對象是什麼?spa

對象就是保管好本身的東西,作好本身的事情的程序模塊--------這就是內聚server

2,依賴對象

一個對象每每須要跟其餘對象打交道,既包括獲取依賴於另外一對象,也包括仰賴其餘對象的行爲,一旦發生便稱爲該對象依賴另外一對象。只要有一個依賴另外一個的現象發生,則這二者之間存在耦合,好比媽媽和嬰兒。開發

3,耦合get

耦合的程度就是耦合度,也就是雙方依賴的程度,媽媽和嬰兒之間是強耦合,而咱們與快遞小哥之間爲弱耦合。io

4,依賴倒置

高層模塊不該該依賴底層模塊,都依賴與抽象。抽象不該該依賴於細節,細節應該依賴抽象。

舉一個例子:

假設你要買一個IPhone,賣IPhone的老闆讓你拿一頭豬跟他換,但是你並無養豬,你只會編程。因此你找到一位養豬戶,說給他作一個養豬的APP來換他一頭豬,他說換豬能夠,可是得用一條金項鍊來換——因此這裏就出現了一連串的對象依賴,從而形成了嚴重的耦合災難。解決這個問題的最好的辦法就是,買賣雙發都依賴於抽象——也就是貨幣——來進行交換,這樣一來耦合度就大爲下降了。

5,控制反轉
首先咱們要區分兩個角色,server 跟 Client,也就是服務方和客戶方。提供服務端的一方稱爲服務方,請求服務的一方稱爲客戶方。
 
當咱們使用開發框架時,開發框架就是做爲服務方,而咱們本身編寫的業務應用就是客戶方。當Client調用server時,這個叫作通常的控制;而當server調用Client時,就是咱們所說的控制反轉,同時咱們也將這個調用稱爲「回調」。控制反轉跟依賴倒置都是一種編程思想,依賴倒置着眼於調用的形式,而控制反轉則着眼於程序流程的控制權。通常來講,程序的控制權屬於server,而一旦控制權交到Client,就叫控制反轉。好比你去下館子,你是Client餐館是server。你點菜,餐館負責作菜,程序流程的控制權屬於server;而若是你去自助餐廳,程序流程的控制權就轉到Client了,也就是控制反轉。
 
總結出開發框架與類庫的區別:使用開發框架時,框架掌握程序流程的控制權,而使用類庫時,則是應用程序掌握程序流程的控制權。或者說,使用框架時,程序的主循環位於框架中,而使用類庫時,程序的主循環位於應用程序之中。框架會回調應用程序,而類庫則不會回調應用程序。
 
6,依賴注入
A對象依賴於B對象,等價於A對象內部存在對B對象的「調用」,而前提是A對象內部拿到了B對象的引用。B對象的引用的來源無非有如下幾種:A對象內部建立(不管是做爲字段仍是做爲臨時變量)、構造器注入、屬性注入、方法注入。後面三種方式統稱爲「依賴注入」。

做者:在好
連接: 編程思想裏面,何謂解耦? - 在好的回答 來源:知乎
相關文章
相關標籤/搜索