您的位置:首页 > 编程语言 > Java开发

java设计模式_外观模式

2016-07-30 19:19 405 查看

一、什么是外观模式

Facade模式也叫外观模式,是由GoF提出的 23种设计模式中的一种。Facade模式为一组具

有类似功能的类群,比如类库,子系统等等,提 供一个一致的简单的界面。这个一致的简单的界 面被称作facade。

二、外观模式的结构



三、外观模式的角色和职责

Facade 为调用方定义简单的调用接口。 Clients 调用者。通过Facade接口调用提供某功能的内部类群。

Packages 功能提供者。指提供功能的类群(模块或子系统)。

//示例1:

/*
* A子系统
*/
public class SystemA {
/*
* A子系统实现功能
*/
public void doSomething()
{
System.out.println("实现A子系统功能");
}

}
/*
* B子系统
*/
public class SystemB {
/*
* B子系统实现功能
*/
public void doSomething()
{
System.out.println("实现B子系统功能");
}
}

/*
* C子系统
*/
public class SystemC {
/*
* C子系统实现功能
*/
public void doSomething()
{
System.out.println("实现C子系统功能");
}
}

public class MainClass {

public static void main(String[] args) {
//实现A子系统功能
SystemA systemA = new SystemA();
systemA.doSomething();

SystemB systemB = new SystemB();
systemB.doSomething();

SystemC systemC = new SystemC();
systemC.doSomething();
}

}

//实现A子系统功能
//实现B子系统功能
//实现B子系统功能

//示例2:
/*
* A子系统
*/
public class SystemA {
/*
* A子系统实现功能
*/
public void doSomething()
{
System.out.println("实现A子系统功能");
}

}

/*
* B子系统
*/
public class SystemB {
/*
* B子系统实现功能
*/
public void doSomething()
{
System.out.println("实现B子系统功能");
}
}

/*
* C子系统
*/
public class SystemC {
/*
* C子系统实现功能
*/
public void doSomething()
{
System.out.println("实现C子系统功能");
}
}

public class Facade {

private SystemA systemA;
private SystemB systemB;
private SystemC systemC;

public Facade()
{
systemA = new SystemA();
systemB = new SystemB();
systemC = new SystemC();
}

public void doSomething()
{
systemA.doSomething();
systemB.doSomething();
systemC.doSomething();

}

}

public class MainClass {

public static void main(String[] args) {
Facade facade = new Facade();
facade.doSomething();
}

}

//实现A子系统功能
//实现B子系统功能
//实现C子系统功能

//示例2:

public class GuPiao {

public void buy()
{
System.out.println("买股票");
}
}

public class QiHuo {

public void buy()
{
System.out.println("买期货");
}
}

public class GuoZhai {

public void buy()
{
System.out.println("买国债");
}
}

public class JiJin { //基金

private GuPiao guPiao;
private QiHuo qiHuo;
private GuoZhai guoZhai;

public JiJin()
{
guPiao = new GuPiao();
qiHuo = new QiHuo();
guoZhai = new GuoZhai();
}

public void buyJiJin()
{
guPiao.buy();
qiHuo.buy();
guoZhai.buy();
}
}

public class MainClass {

public static void main(String[] args) {
//80年代,基金出现之前
GuPiao guPiao = new GuPiao();
guPiao.buy();

QiHuo qiHuo = new QiHuo();
qiHuo.buy();

GuoZhai guoZhai = new GuoZhai();
guoZhai.buy();

JiJin jiJin = new JiJin();
jiJin.buyJiJin();
}
}
//买股票
//买期货
//买国债
//买股票
//买期货
//买国债
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  java