設計模式之工廠模式

2021-09-11 02:17:38 字數 2535 閱讀 9790

定義:工廠模式專門負責將大量有共同介面的類例項化。工廠模式可以動態決定將哪乙個類例項化,而不必事先知道每次要例項化哪乙個類。

三種形態

簡單工廠模式

專門定義乙個類來負責其他類的例項,被建立的例項通常具有共同的父類或介面。

1. 適用場景

2. 優點

3. 缺點

4. **

public inte***ce ball
public class football implements ball 

}

public class basketball implements ball 

}

public class pingpong implements ball 

}

public class ballfactory  else if("basketball".equals(type))  else if("pingpong".equals(type))  else }}

public class factroypatterndemo 

}

5. 執行效果如下:

工廠方法模式

定義用於建立物件的介面,讓子類決定例項化哪乙個類,工廠方法使乙個類的例項化延遲到其子類。

在工廠方法模式中,核心的工廠類不再負責所有的產品的建立,而是將具體建立的工作子類去做,這個核心類則成為了乙個抽象工廠角色,僅負責給出具體工廠子類必須實現的介面,而不接觸哪乙個產品類應當被例項化這種細節。

1. 適用場景

2. 優點

3. 缺點

4. **

和簡單工廠模式一樣,先定義乙個ball介面,再定義football、basketball、pingpong去實現這個介面

public inte***ce ball
public inte***ce ballfactory
public class footballfactory implements ballfactory 

}

public class basketballfactory implements ballfactory 

}

public class pingpongfactory implements ballfactory 

}

public class factorymethoddemo 

}

5. 執行效果如下:

抽象工廠模式

提供乙個建立一系列或相互依賴的物件的介面,而無需指定它們的具體類

1. 適用場景

2. 優點

3. 缺點

4. **

public inte***ce tread
public inte***ce engine
public class treada implements tread 

}

public class treadb implements tread 

}

public class enginea implements engine 

}

public class engineb implements engine 

}

public inte***ce bmwfactory
public class bmwx5factory implements bmwfactory 

@override

public engine deployengine()

}

public class bmwx6factory implements bmwfactory 

@override

public engine deployengine()

}

public class abstractfactorydemo 

}

5. 執行效果如下:

設計模式 設計模式之工廠模式

工廠方法模式 建立模式 使用場景?作用?形態?場景 大量類似的實體類 要建立的實體類都是同一本質的東西 披薩 有部分類似功能 準備 烘烤 切法 實現方式不一樣 準備的材料不同 烘烤時間不同 切法不同 將繁瑣複雜的建立類的過程聚集在一起,有序清晰 把具體例項化的過程從客戶 中抽離 作用 1 將建立物件...

c 設計模式 之 工廠模式之 工廠模式

1 uml類圖 實現和依賴關係 實現 sportfactory jeepfactory hatchbackfactory 實現 ifactory 介面 sportcar jeepcar hatchbackcar 實現 icar 介面 依賴 ifactory 依賴 icar sportfactory ...

設計模式 工廠模式之簡單工廠模式

定義 由乙個工廠物件 工廠類 來指定建立某乙個產品類的例項。使用場景 客戶端只需傳入指定的引數即可,工廠類負責建立的物件較少 因為指定了傳入的引數 介面類 本想用iphone命名的,見諒 public inte ce phone實現介面類 public class huaweiphone imple...