android 工廠模式(一)

簡單的工廠模式

簡單的工廠模式為定義一個用于創(chuàng)建對象的接口,讓子類決定實例化哪個類。簡單工廠模式又稱為靜態(tài)方法工廠模式

優(yōu)點:

  • 代碼解耦,創(chuàng)建實例的工作與使用實例的工作分開,使用者不必關心類對象如何創(chuàng)建。
  • 不必管這些對象到底怎樣創(chuàng)建及怎樣組織的.明白了各自的職責和權利,有利于整個軟件體系結構的優(yōu)化。

缺點:

  • 修改麻煩,動一則牽動全身,假設需要新添加類,則需要修改工廠類。
  • 加入產(chǎn)品類時,需要修改的內(nèi)部邏輯多。

代碼顯示:

//Create the event description method
public abstract class Events {
    public abstract void decEvents();
}

//Inherit the event description method and write the content of the event
public class ClickEvents extends Events {
    @Override 
    public void decEvents() {
        LogHelper.w("This event is a click event");
    }
}

public class SearchEvents extends Events {
    @Override 
    public void decEvents() {
        LogHelper.w("This event is a search event");
    }
}

public class  LoginEvents extends Events {
    @Override 
    public void decEvents() {
       LogHelper.w("This event is a login event");
    }
}

public class SimpleEventsFactory { 
    public static final int TYPE_CLICK = 1;
    public static final int TYPE_SEARCH = 2;
    public static final int TYPE_LOGIN = 3;

public static Events createEvents(int type) { 
    switch (type) { 
    case TYPE_CLICK: 
        return new ClickEvents(); 
    case TYPE_SEARCH:
        return new SearchEvents(); 
    case TYPE_LOGIN: 
        return new SearchEvents();
    default:
        return null;
        }
    }
}
//Instantiate and output the result
Events events = SimpleEventsFactory.createEvents(SimpleEventsFactory.TYPE_CLICK);
events.decEvents();

輸出結果:
This event is a click event

適用場景:

  1. 消費者不關心它所要創(chuàng)建對象的類(產(chǎn)品類)的時候。
  2. 消費者知道它所要創(chuàng)建對象的類(產(chǎn)品類),但不關心如何創(chuàng)建的時候。
  3. 生成復雜對象時,確定只有一個工廠類,可以使用簡單工廠模式。否則有多個工廠類的話,使用工廠方法模式
最后編輯于
?著作權歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

友情鏈接更多精彩內(nèi)容