轻松掌握java外观模式

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

特点:

    (1)实现了子系统与客户端之间的松耦合关系。

    (2)客户端屏蔽了子系统组件,减少了客户端所需处理的对象数目,并使得子系统使用起来更加容易。

企业级开发和常用框架重的应用:很多,比如常见的字符串的分割方法spilt也是

具体实例

package com.test.faced;

/**
 * 以喝茶为例:我们要喝茶,就得有茶具,茶叶,煮茶工具等
 */
public class Demo {

 public static void main(String[] args) {
 System.out.println("不使用外观模式时,这些对象都需要客户自己去准备");
 Tea tea = new Tea("龙井");
 TeaSet teaSet = new TeaSet();
 TeaTools teaTools = new TeaTools();
 System.out.println("喝茶");
 
 System.out.println("使用外观模式,我们提供一个茶馆对象:");
 TeaHouse teaHouse = new TeaHouse();
 teaHouse.drinkTead();
 System.out.println("喝茶");
 }
}

class Tea{
 public Tea(String name) {
 System.out.println("准备想要喝的茶的茶叶:"+name);
 }
}

class TeaSet{
 public TeaSet() {
 System.out.println("准备喝茶要用的茶具");
 }
}

class TeaTools{
 public TeaTools() {
 System.out.println("准备煮茶要用的工具,煮茶");
 }
}

class TeaHouse{
 public void drinkTead(){
 Tea tea = new Tea("龙井");
 TeaSet teaSet = new TeaSet();
 TeaTools teaTools = new TeaTools();
 System.out.println("请喝茶");
 }
}

其实外观模式就和我们常提的封装概念差不多,封装是将对象封装起来,而外观模式,则是将复杂的流程封装起来,对外提供一个统一的接口,让用户不用去管整个复杂的流程,只关注流程处理结果。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持呐喊教程。

声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:notice#nhooo.com(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。