设计模式之外观模式(包含了理论理解和应用的实例代码)

简介

外观模式,通俗来讲就是将不同类的方法放到同一个构建出来的新的类当中去,然后实例化这些不同类,在这个类当中使用方法调用这些不同类的方法。

代码解释

class Facade{
private ClassA a=new ClassA();
private ClassB b=new ClassB();
private ClassC c=new ClassC();
public void methodA(){
       a.methodA();
       }
       ...
       依次类推下去
}

应用入实例的代码

Aiport.java

package waiguan;

public class Aiport {
    public  void BookTicket(String name,String to){
        System.out.println("订购了从"+name+"到"+to+"的机票");
    }
}

Hostel.java

package waiguan;

public class Hostel {
    public void reserve(int days){
        System.out.println("订了"+days+"天的房间");
    }
}

Restaurant.java

package waiguan;

public class Restaurant {
    public void reserve(int num){
        System.out.println("订了一桌"+num+"个人的酒席");
    }
}

Chauffeur.java

package waiguan;

public class Chauffeur {
    public void drive(String to){
        System.out.println("司机开车去"+to);
    }
}

Secretary.java

package waiguan;

public class Secretary {
   private Aiport aiport=new Aiport();
   private  Chauffeur chauffeur=new Chauffeur();
   private  Restaurant restaurant=new Restaurant();
   private  Hostel hostel=new Hostel();
   public void trip(String to,int days){
       aiport.BookTicket("青岛",to);//秘书设置对应的目的地
       chauffeur.drive("机场");
       hostel.reserve(days);//表示这个秘书进行设置时间
   }
   public void repast(int num){
       restaurant.reserve(num);
       chauffeur.drive("酒店");
   }

}

Boss.java

package waiguan;

public class Boss {
    public static void main(String[] args) {
        Secretary s=new Secretary();
        System.out.println("老板告诉秘书要到上海出差10天,让秘书帮忙安排一下");
        s.trip("上海",10);
        System.out.println("------------------------");
        System.out.println("老板告诉秘书要请八个人吃饭,让秘书安排一下饭局");
        s.repast(10);
    }
}

本次设计模式很简单,大家看一下应该就能明白,我就不一一赘述啦,我们下期见!

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
©️2022 CSDN 皮肤主题:1024 设计师:我叫白小胖 返回首页
评论

打赏作者

小鱼爱吃菜

你的鼓励将是我创作的最大动力

¥2 ¥4 ¥6 ¥10 ¥20
输入1-500的整数
余额支付 (余额:-- )
扫码支付
扫码支付:¥2
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值