Java設計模式--工廠模式

25minutes發表於2021-09-09

一、工廠模式的目的

  為建立物件提供過度介面,以便將建立物件的具體過程遮蔽隔離起來,達到提高靈活性的目的

二、優缺點

  優點:工廠類是整個模式的關鍵所在,無需瞭解物件是如何建立以及如何組織的,有利於整個軟體體系結構的最佳化。

  缺點:由於工廠類集中了所有例項的建立邏輯,這就直接導致一旦這個工廠出了問題,所有的客戶端都會受到牽連,違背了單一職責

三、具體實現

01

02

03

04

05

06

07

08

09

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

//細節:命名規則類,介面名稱都得大寫

interface Fruit {

    //介面中的 public abstract 都是多餘的宣告,eclipse是發現不了的。

    //若是有心人就換編輯器,intellij idea,

    void eat();

}

 

class Apple implements Fruit {

    public void eat() {

        System.out.println("Apple");

    }

}

 

class Orange implements Fruit {

    public void eat() {

        System.out.println("Orange");

    }

}

 

//   構造工廠類 

//   也就是說以後如果我們在新增其他的例項的時候只需要修改工廠類就行了 

class Factory {

    public static Fruit getInstance(String fruitName) {

        Fruit   f = null;

        if ("Apple".equals(fruitName)) {//這麼寫是為了避免null.equal(),空指標異常,有人會問這個為什麼嗎? 

            f   = new Apple();

        }

        if ("Orange".equals(fruitName)) {

            f   = new Orange();

        }

        return f;

    }

}

 

class Hello {

    public static void main(String[]   a) {

        Fruit   f = Factory.getInstance("Orange");

        f.eat();

    }

}

四、總結

簡單工廠模式分離產品的建立者和消費者,有利於軟體系統結構的最佳化;但是由於一切邏輯都集中在一個工廠類中,導致了沒有很高的內聚性,同時也違背了“開放封閉原則”。另外,簡單工廠模式的方法一般都是靜態的,而靜態工廠方法是無法讓子類繼承的,因此,簡單工廠模式無法形成基於基類的繼承樹結構。

原文連結:http://www.apkbus.com/blog-780485-77078.html

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/4328/viewspace-2812491/,如需轉載,請註明出處,否則將追究法律責任。

相關文章