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

java设计模式之外观模式

2016-08-20 15:01 232 查看

外观模式概念

  外观模式又称为门面模式,为子系统中的一组接口提供一个一致的界面,此模式定义了一个搞层次接口,使得这一个子系统更加容易使用。这一模式完美的体现了依赖倒转原则和迪米特法则的思想,所以是非常常用的模式之一。

外观模式UML图

  


外观模式代码

  学习外观模式我使用的例子是一个打架的例子,打架一般都不希望被人看见,只要知道打了人了就可以了。

package com.roc.face;
/**
* 门面模式接口    打架不能让别人看见
* @author liaowp
*
*/
public interface FaceInterface {
/**
* 跟谁打
* @param name
*/
public void fight(String name);

/**
* 给糖
* @param num
*/
public void giveTang(int num);
}


package com.roc.face;
/**
* 具体实现方式
* @author liaowp
*
*/
public class FaceIml implements FaceInterface{
/**
* 打架
*/
public void fight(String name) {
System.out.println("打了"+name);
}

/**
* 给糖
* @param num
*/
public void giveTang(int num){
System.out.println("不能报复,给你"+num+"块糖");
}

}


package com.roc.face;
/**
* 对外面的情况
* @author liaowp
*
*/
public class FaceModel {
private FaceInterface  faceInterface=new FaceIml();

public void deal(String name,int num){
faceInterface.fight(name);
faceInterface.giveTang(num);
}
}


package com.roc.face;
/**
* 使用场景
* @author liaowp
*
*/
public class Client {
public static void main(String[] args) {
FaceModel faceModel=new FaceModel();
String name="liaowp";
faceModel.deal(name,1);//并不关心里面怎么打的,只知道要打那个人。这就是门面      假如现在打完之后怕报复,又给了一块糖,只需要修改接口那边就可以了。
}
}


外观模式适用场景

(1)设计初期阶段,应该有意识的将不同层分离,层与层之间建立外观模式。
(2) 开发阶段,子系统越来越复杂,增加外观模式提供一个简单的调用接口。
(3) 维护一个大型遗留系统的时候,可能这个系统已经非常难以维护和扩展,但又包含非常重要的功能,为其开发一个外观类,以便新系统与其交互。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: