sykbpop79405
2016-01-29 13:17
设计模式之Facade——家庭篇,设计模式之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等众多网友提出的宝贵意见,因此我把程序做了一些修改,希望更能说明问题。大家的支持是对我的最好的鼓励,真心感谢!