Android架構師之路-oop


  特此聲明:本人正在學習android架構知識,此些blog相當於自己的學習筆記,完全手工碼字,部分內容借鑒於android研究員高煥堂高老師的ppt講義,穿插個人領悟,出於弘揚程序員奉獻精神,再此分享給感興趣的朋友!

1.面向對象oop
   oriented的含義:意味着一種信仰,object-oriented相信任何的軟件都是有對象構成,
   而不是Nothing else,由此可以得出總結:電腦語言的設計就簡化了寫程序只要定義class就可以了
2.Oriented-Based-Driven-Centered 之間的區別:
  Based:--基於需求,有先后的順序。例如先進行需求分析,然后基於需求分析的結果(文件)
  而進行后續的軟件開發活動,稱為:Requirement-based software developer
  俗稱:打地基。
  driven:“引導”,當在開發軟件的時候,按照指定的模型去開發程序,以用戶的使用為北極星,在不
  違背用戶需求的情況下開發系統。
  centered:一切的軟件開發的活動都是圍繞這架構,就是像聖誕節的糖果和禮物一樣都掛在聖誕樹上
  一樣


 對象(Object)
   自然界中我們都認識的東西都是對象,而對於自己不認識的東西我們就理所當然的不認為是成為對象
   ,舉個例子:李白自己寫的詩文,他認為是對象,但是給他看一個外文詩的時候,他就不認為是對象
   因為他根本不認識這個東西。
   然后是。一旦我們認識了某樣東西,我們就可以說出他的特點,並於別的對象做一個對比,其特點包
   括:
   1>對象之特征或者屬性
   2>對象之行為
   例如:人有鼻子,胳膊,退等屬性,會跑,跳等行為。
   軟件之對象(software Object)是有數據(Data)和函數(Function)組成。
 類(Class)
    是群體或者集合,而對象是類中的一份子,類是對象的集合。
類是一群具有共同重要屬性的對象,類的定義就是說明這對象都具有什么的重要特性,軟件中的對
象以數據來表達特性,以函數來表達行為,因此,類的定義就是說明軟件中的對象,應包含數據和函數。
 繼承(extend)
  對眾多的對象加以分門別類,就形成了繼承的的體系,衍生類=子類
  子類繼承基類(父類)子類和父類如同兒子和爸爸的關系,子類繼承父類的所用屬性和行為,並且子類還可以自己
  定義屬性(data)和行為(函數)。
 表達組合:,擴充功能,和繼承類似。
   基類和子類的結構用途:比如輪胎和引擎的關系,引擎帶動輪胎運作,彼此是組合關系
    我們在此舉個列子:
創建小線程:
main(){
Thread t = new Thread(new Task());//創建輪胎引擎
t.start();//啟動引擎帶動輪胎轉動,拿到基類對象,通過接口調用子類的函數。
//t開啟小線程去執行run()函數。


class Task implements Runnable{
public void run(){
system.err.println("hello world");
 }

想要將輪胎和引擎結合起來,那么就必須給Thread(引擎)定義一個接口(Runnable),然后創建Task(輪胎)去實現這個接口,

接口(interface)=(卡榫函數)
基類和子類的結構:
所謂的卡榫(Hook)就是用來結合兩個東西的接口,如果兩個東西與不同的時間出現,那么一方
就會預留虛空,給予另一方未來時刻能以實體來填補該空間,兩者虛實相依就密合起來,以此實現新陳代謝抽換自如(pnp)
變與不變的分離:是設計卡榫函數函數以及應用框架之基本原則和手藝
分離出變與不變部分之后,就可以將不變的部分寫在父類別里,而變的部分寫在子類別里

*在Java里,使用抽象(abstract)函數或可覆寫(overridable)函數來實現卡榫函數



Ioc控制反轉:
  基類調用子類,主控權在基類上,
  Ioc機制源自於oo語言(c++等)的類別繼承體系,c++中基類的函數可以主動的調用子類的函數,這是經典的
  ioc機制。
  基類和子類之間,基類是主控權,通過Hook函數來調用子類
  通常撰寫基類在先,而子類在后,這種前輩擁有主導權,進而控制后背之情形,叫做“控制反轉”
   默認(Default)行為:基類的主要功能,提供預設值的默認行為,即函數,供子類調用
   繼承。
  
  主動性vs被動型api:
  UI = USER INTERFACE.
  從基類的視角去區分主動和被動。
  API:這是一個名詞,但是他關聯着三個動詞:1.定義(define)2.實現(implement)3.呼叫(ioc)
  可講API分為“主動型”和“被動型”
  
  接口(interface)是雙方接觸的地方,可以說是雙方勢力或者地盤的界線
  誰擁有接口的制定權,誰就掌控着控制點,誰就能獲得主動權,另一方為被動地位



通過圖片便於理解以上知識:



免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM