設計模式之Facade——家庭篇(原創)

設計模式之Facade——家庭篇<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />

 

今年十一國慶節,我呆在家裏美美的享受了一下家的溫馨。首先讓我來介紹一下我的家庭成員:

妻子(Wife

女兒(Daughter

我(Me

我們都是家庭(Family)的一分子,我們是以家庭對外的。就象我們國家對外是以“中國”,外國人都稱我們是中國人,但在中國這個大家庭內部,包括了漢、回、蒙、。。。等56個民族一樣。

可見對外我們是要以統一的身份,或叫統一的外觀(Facade)進行展現。

好了言歸正傳。

1、  在這裏,先定義家庭的各個成員類:

妻子(Wife):

public class Wife {

  protected Wife() {

    System.out.println("老婆偉大 !");

  }

}

女兒(Daughter):

public class Daughter {

  protected Daughter () {

    System.out.println("女兒可愛 !");

  }

}

我(Me):

public class Me {

  protected Me() {

    System.out.println("我愛我家 !");

  }

}

2、定義家庭對外展現(FamilyOutShow)類:

public class FamilyOutShow {

  public void MyFamily() {

    Wife myWife = new Wife();  //我的老婆

    Daughter myDaughter = new Daughter ();  //我的女兒

    Me me= new Me();  //我自己

  }

}

3、編寫測試類:

public class MyFamilyTest {

  public static void main(String[] args) {

      FamilyOutShow myFamily = new FamilyOutShow ();

      myFamily.MyFamily();

  }

}

4、說明:

AFacade的定義: 爲子系統中的一組接口提供一個一致的界面。

B使用統一對外接口,可以降低系統的複雜性,增加了靈活性。

C:從例子中可以看到,外界只是訪問了家庭對外展現(FamilyOutShow)類,而沒有直接與成員類打交道。這樣比如說增加了一個新的成員類(比如說兒子(Son)類),只要修改家庭對外展現(FamilyOutShow)類即可,而不用修改調用。

      5、特別感謝:
       感謝windcsn、flyingwind、acdsee等衆多網友提出的寶貴意見,因此我把程序做了一些修改,希望更能說明問題。大家的支持是對我的最好的鼓勵,真心感謝!

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