设计模式之Facade——家庭篇

原创 2005年05月27日 09:24:00

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

妻子(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等众多网友提出的宝贵意见,因此我把程序做了一些修改,希望更能说明问题。大家的支持是对我的最好的鼓励,真心感谢!

设计模式之Facade(家庭篇)

今年十一国庆节,我呆在家里美美的享受了一下家的温馨。首先让我来介绍一下我的家庭成员:           妻子( Wife )           女儿( Daughter )           我...
  • shuihan20e
  • shuihan20e
  • 2008年05月21日 13:49
  • 254

设计模式之Facade——家庭篇

今年十一国庆节,我呆在家里美美的享受了一下家的温馨。首先让我来介绍一下我的家庭成员:妻子(Wife)女儿(Daughter)我(Me)我们都是家庭(Family)的一分子,我们是以家庭对外的。就象我们...
  • cyokin
  • cyokin
  • 2004年11月10日 14:23
  • 708

设计模式之Facade——家庭篇(搞笑版)

今年十一国庆节,我呆在家里美美的享受了一下家的温馨。首先让我来介绍一下我的家庭成员:妻子(Wife)女儿(Daughter)我(Me)我们都是家庭(Family)的一分子,我们是以家庭对外的。就象我们...
  • cnham
  • cnham
  • 2005年09月27日 19:51
  • 777

设计模式之Facade——家庭篇(原创)

设计模式之Facade——家庭篇 今年十一国庆节,我呆在家里美美的享受了一下家的温馨。首先让我来介绍一下我的家庭成员:妻子(Wife)女儿(Daughter)我(Me)我们都是家庭(Family)的一...
  • lxgljj
  • lxgljj
  • 2004年10月10日 17:30
  • 7412

23种设计模式(1)-Facade设计模式

前记        曾经我遇见的一个需求是这样的,接口A有个方法void methodA(),类B需要实现接口A的methodA()方法,并且在类B中需要把methodA()方法内部处理逻辑获得的结...
  • duchao123duchao
  • duchao123duchao
  • 2016年05月16日 14:47
  • 3483

C++外观模式详解--设计模式(11)

Facade模式产生原因:        老旧的code(尤其是将C的代码转成C++代码)或者即便不是老旧code,但涉及多个子系统时,除了重写全部代码(对于老旧code而言),我们还可能采用这样一种...
  • fanyun_01
  • fanyun_01
  • 2016年06月29日 08:57
  • 1382

C# 设计模式--外观模式(Facade)

     一个良好的面向对象应用程序应该是一个最小的类,这个类能够把其他可重用类的行为有效的组织起来。对一个子系统的类进行重构,直到每个类都有一个进行良好定义功能目标,所以代码易于维护。外观模式(Fa...
  • scucj
  • scucj
  • 2006年11月09日 00:22
  • 3218

Java 设计模式 之 facade(外观)设计模式

Facade模式要求一个子系统的外部与其内部的通信通过一个统一的Facade对象进行。Facade模式提供一个高层次的接口,使得子系统更易于使用。       当子系统经过不断的演变,变得异常复杂时,...
  • u010349169
  • u010349169
  • 2014年01月28日 17:24
  • 2932

pureMVC与设计模式之二. Facade模式与Singleton模式

引言 上篇文章,我们分析了pureMVC的结构以及工作流。从本文开始,将逐个解剖其中设计到的设计模式。我们先看facade模式和singleton模式。 一、pureMVC中的Facade模式...
  • ywjun0919
  • ywjun0919
  • 2015年05月05日 10:04
  • 578

浅谈JAVA设计模式之——外观模式(Facade)

一、概述 为子系统中的一组接口提供一个一致的界面,Facade模式定义了一个高层接口,这个接口使得这一子系统更加容易使用。 二、适用性 1.当你要为一个复杂子系统提供一个简单接口时。子系统往往因为不断...
  • l1028386804
  • l1028386804
  • 2015年05月07日 23:32
  • 3383
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:设计模式之Facade——家庭篇
举报原因:
原因补充:

(最多只允许输入30个字)