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

Java实现设计模式之外观模式

2017-05-31 21:46 260 查看

外观模式

外观模式:为子系统中的一组接口提供一个一致的界面,此模式定义了一个高层接口,这个接口使得这一子系统更加容易使用。

1、  外观类需要了解所有的子系统的方法或属性,进组组合,以备外界调用,

2、  使用时期

a)      设计阶段:需有意识的将不同的两个层分离。

b)     开发阶段:增加外观façade提供一个简单的接口,应对子类的重演和演化。

c)       维护期间:使用façade类,为遗留代码提供清晰简单的接口,让新系统与façade交互,façade与遗留代码交互所有复杂的工作。

这是大话设计模式上实现的外观模式在股票上的使用,将facade类看做基金,客户与基金交互,基金封装各种股票的操作避免客户与股票直接联系。

原模式是c#的,我改成了Java版的:

/**
* @author LilyLee
* @date 2017年6月2日
* @time 下午4:11:24
* @Version 1.0
* @email lilylee_1213@foxmail.com
*
*/
public class FacadeTest {

public static void main(String[] args) {
Facade fa=new Facade();
fa.MethodA();
fa.MethodB();
}
}

class Facade{
SubSystem1 one;
SubSystem2 two;
SubSystem3 three;

public Facade(){
one=new SubSystem1();
two=new SubSystem2();
three=new SubSystem3();
}

public void MethodA(){
System.out.println("方法A");
one.methodOne();
three.methodthree();
}

public void MethodB(){
System.out.println("方法B");
two.methodTwo();
three.methodthree();
}

}

//子系统(原本客户端需要跟子系统打交道,但是现在子系统被外观类调用封装,不再直接跟客户端打交道了)
class SubSystem1{
public void methodOne(){
System.out.println("卖出股票!");
}
}

class SubSystem2{
public void methodTwo(){
System.out.println("买入股票!");
}
}

class SubSystem3{
public void methodthree(){
System.out.println("观望!");
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  设计模式 JAVA