Android學習——工廠模式

最近面試被問了工廠模式,有些忘卻,自己總結一下:
工廠模式:定義一個用於創建對象的接口,讓子類決定實例化哪一個類,工廠方法使一個類的實例化延遲到其子類。
舉個例子:公司有個這樣一個需求,在App中要使用到LBS定位來實現某些功能。既可以用百度地圖api,也可使用高德地圖api,但是公司領導想要都用,看哪個好用用哪一個。這樣就用到工廠模式了,我兩個都給你設計,代碼設個開關和參數,只要改個參數,就換地圖api。

public class test {
       public static void main(String[] args) {
              Location position= new Factory().getInstance("gaode");
              position.getCity();
       }
}

class Factory{
       public static Location getInstance(String type){
              if("baidu".equals(type)){
                     return new BaiduLocation();
              }else {
                     return new GaodeLocation();
              }
       }
}
class BaiduLocation implements Location{
       @Override
       public void getCity() {
              // TODO Auto-generated method stub
              System.out.println("百度-城市");
       }
}
class GaodeLocation implements Location{
       @Override
       public void getCity() {
              // TODO Auto-generated method stub
              System.out.println("高德-城市");
       }
}
interface Location{
       public void getCity();
}

Factory是一個工廠類,通過getInstance的參數決定了創建的類,用來區分高德和百度。Location是一個接口,它抽象定義了BaiduLocation和GaodeLocation的函數調用。調用者能夠任意通過改變參數,來實現來自不同定位API的需求。

使用工廠模式的好處是:耦合度變低,從工廠類中取對象;

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章