设计模式之Facade——家庭篇

今年十一国庆节,我呆在家里美美的享受了一下家的温馨。首先让我来介绍一下我的家庭成员:

妻子( 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 、说明:

A : Facade 的定义 ** : ** 为子系统中的一组接口提供一个一致的界面。

B : 使用统一对外接口,可以降低系统的复杂性 , 增加了灵活性。

C :从例子中可以看到,外界只是访问了家庭对外展现( FamilyOutShow )类,而没有直接与成员类打交道。这样比如说增加了一个新的成员类(比如说儿子( Son )类),只要修改家庭对外展现( FamilyOutShow )类即可,而不用修改调用。

5、特别感谢:
感谢windcsn、flyingwind、acdsee等众多网友提出的宝贵意见,因此我把程序做了一些修改,希望更能说明问题。大家的支持是对我的最好的鼓励,真心感谢!

Published At
Categories with Web编程
Tagged with
comments powered by Disqus