白话-23种设计模式5-外观模式
【摘要】 一、白话 由于我是做java的web应用的,这个模式用的就比较多了,用的时候也没感觉到一种模式,现在想想确实web应用就是一个外观模式。现实举例,我们去吃烤肉,如果我们自己烤,我们需要自己拿肉,开火,刷油,翻滚菜..,烤熟。 经过一系列的动作,最后才完成得到烤肉这个结果。但是,有些店是有提供烤肉的服务的,你只需要跟店家说,帮我烤一份牛肉,然后店家就会自己去完成拿肉,开火,刷油一系列动作,最...
一、白话
由于我是做java的web应用的,这个模式用的就比较多了,用的时候也没感觉到一种模式,现在想想确实web应用就是一个外观模式。现实举例,我们去吃烤肉,如果我们自己烤,我们需要自己拿肉,开火,刷油,翻滚菜..,烤熟。 经过一系列的动作,最后才完成得到烤肉这个结果。但是,有些店是有提供烤肉的服务的,你只需要跟店家说,帮我烤一份牛肉,然后店家就会自己去完成拿肉,开火,刷油一系列动作,最后我们也完成了得到烤肉这个结果。我们只需要使用店家提供的服务,不需要管具体的操作细节,就是外观模式设计。web应用一个一个接口也就是类似店家提供的烤肉服务一样的。
二、定义
外观模式定义了一个高层接口,用以屏蔽内部的细节,使得用户端只需跟接口发生调用,而无需内部细节,简化操作
三、示例
/**
* 外层类-高层接口,如烤肉服务
*/
public class FacadeApi {
// 烤肉服务
public String barbecued() {
FacadeService facadeService = new FacadeService();
facadeService.fire(); // 开火
facadeService.oil(); // 放油
facadeService.seasonings(); // 调料
return "肉烤好了";
}
}
/**
* 子系统-内部细节 烤肉细节
*/
public class FacadeService {
public void fire() {
System.out.println("起锅开火");
}
public void oil() {
System.out.println("倒油");
}
public void seasonings() {
System.out.println("放入调料");
}
}
public class FacadeApplication {
public static void main(String[] args) {
// 用户直接调用外部类高层接口-烤肉服务
FacadeApi facadeApi = new FacadeApi();
String barbecued = facadeApi.barbecued();
System.out.println(barbecued);
}
}
结果示例:
四、总结
优点:一定程度上降低了系统耦合性。简化了用户操作。用户无需关注细节,只关注高层接口。
【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)