Android開發之原廠模式初探,android工廠初探

來源:互聯網
上載者:User

Android開發之原廠模式初探,android工廠初探

      原廠模式(Factory)是比較常見的一種模式我覺得也是一種非常容易理解的一種模式,舉個簡單的例子吧,我們小時候經常考試,每次最害怕的就是爸媽問考試試卷的分數,不同的分數我們的心情也是不一樣的。那麼我們就根據這個情況以原廠模式寫一個Java程式。

public class Factory {     public  static Student_test  creator(String rank){     if(rank.equals("優秀")){     return  new Student_Laugh();     }else{     return  new Student_Cry();     }     }}
      在這裡我們建立了一個工廠類根據該學生得到的不同成績,產生該學生不同情緒的反應類。很多人覺得我直接根據值new Student()類不就好了,是的啊這樣的邏輯沒有問題,但是如果建立Student執行個體時所做的初始化工作不是象賦值這樣簡單的事,我們都知道我們苦逼的分數都是由我們老師打得,是經曆了一個很長的閱卷過程,轉化起來可能是很長一段代碼,如果也寫入建構函式中,那我們的代碼很難看了(就需要Refactor重整)。
      為什麼說代碼很難看,大部分人剛開始可能沒有這種感覺,我剛開始也是這麼覺得。但是我們分析一下,初始化工作如果是很長一段代碼,說明要做的工作很多,將很多工作裝入一個方法中,相當於將很多雞蛋放在一個籃子裡,是很危險的,這也是有背於Java物件導向的原則,物件導向的封裝(Encapsulation)和指派(Delegation)告訴我們,盡量將長的代碼指派“切割”成每段,將每段再“封裝”起來(減少段和段之間偶合聯絡性),這樣就會將風險分散,以後如果需要修改,只要更改每段,不會再發生牽一動百的事情。
     在本例中,首先,我們需要將建立執行個體的工作與使用執行個體的工作分開, 也就是說,讓建立執行個體所需要的大量初始化工作從Student的建構函式中分離出去。
      在構建工廠類的時候呢,除了上述的工廠類Factory,還有抽象類別Student
public abstract class Student {}
    Student的子類laugh,cry類繼承抽象類別Student共同組成。

      下面我們再來介紹一下抽象工廠模型,這兩個模式區別在於需要建立對象的複雜程度上。如果我們建立對象的方法變得複雜了,如上面Factory 方法中是建立一個對象Student_test,如果學生還有普通不考試的狀態Student_normal,這怎麼辦呢!我們繼續上面的比方,一個家比喻成一個工廠,他們家有兩個小孩,兩個小孩還是都要去考試吧,都會有考試成績吧,但雖然是一個爸媽生的,對於分數的表現也是不一樣的吧。按照上述情境,我們在寫一個抽象工廠模型。

public abstract class Factory{public abstract Student_normal creator();public abstract Student_test creator(String name);}public class SimpleFactory extends Factory{public Student_normal creator(){ ......... return new StudentA }public Student_test creator(String name){.........return new StudentA_laugh|cry  }}public class BombFactory extends Factory{public Student_normal creator(){...... return new StudentB}public Student_test creator(String name){...... return new StudentB_laugh|cry }}}

       從上述程式碼分析,我們總共有兩個抽象的creator類Student_normal和Student_test類,代表平時學生的兩種狀態,考試和不考試的狀態,而每一個抽象類別模型下面又有剛說的那兩孩子,Student_normal類下面StudentA、StudentB,以此類推。那麼我們為什麼不直接建兩個工廠就好了啊,因為他們是彼此有連結,有關係的,,我們將共同部分封裝在抽象類別中,不同部分使用子類實現。

     抽象工廠模型相比普通工廠模型而言就多了一類角色[抽象工廠類],需要普通工廠類繼承抽象工廠類來實現,抽象工廠類封裝了生產商品共用的方法,普通工廠類則專門負責其單一的一類具體產品的生產。


     

    


安卓手機原廠模式跟工程模式有什不同?

工程模式是用來升級系統,更改系統關鍵參數用的。
原廠模式是用來reboot的。(跟恢復出廠預設值差不多)
 
安卓手機原廠模式

恢複出產?你的系統多少?進設定,找到重設這個選項,裡面有,如果沒有重設這個選項,就找隱私權這個選項。可以恢複出產。你說的原廠模式是什麼啊?工程模式?還是挖煤模式?
 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.