建立型模式(二):AbstractFactory ( 抽象工廠 )

來源:互聯網
上載者:User

核心工廠類不再負責所有產品的建立,而是將具體建立的工作交給子類去做,成為一個抽象工廠角色,僅負責給出具體工廠類必須實現的介面,而不接觸哪一個產品類應當被執行個體化這種細節。

例子:請MM去麥當勞吃漢堡,不同的MM有不同的口味,要每個都記住是一件煩人的事情,我一般採用Factory Method模式,帶著MM到服務員那兒,說“要一個漢堡”,具體要什麼樣的漢堡呢,讓MM直接跟服務員說就行了。

 1 interface Sample{
2 public void say();
3 }
4
5 class SampleA implements Sample{
6 public void say(){
7 System.out.println("SampleA");
8 }
9 }
10
11 class SampleB implements Sample{
12 public void say(){
13 System.out.println("SampleB");
14 }
15 }
16 abstract class Factory{
17 public abstract Sample create();
18 }
19
20 class FactoryA extends Factory{
21 public Sample create(){
22 return new SampleA();
23 }
24 }
25
26 class FactoryB extends Factory{
27 public Sample create(){
28 return new SampleB();
29 }
30 }
31
32 public class Test {
33 public static void main(String[] args) {
34 Factory factoryA =new FactoryA();
35 Sample test1=factoryA.create();
36 test1.say();
37 Factory factoryB=new FactoryB();
38 Sample test2=factoryB.create();
39 test2.say();
40 }
41 }

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.