外观模式

外观模式(Facade Pattern)门面模式

隐藏系统的复杂性,并向客户端提供了一个客户端可以访问系统的接口。这种类型的设计模式属于结构型模式,它向现有的系统添加一个接口,来隐藏系统的复杂性。

这种模式涉及到一个单一的类,该类提供了客户端请求的简化方法和对现有系统类方法的委托调用。(就是封装)

 

public interface Message {

    public void sendMessage();

}

class ZhiFuBao implements Message {

    @Override
    public void sendMessage() {
        System.out.println("支付宝发送短信");
    }

}

class UnionPay implements Message {

    @Override
    public void sendMessage() {
        System.out.println("银联发送短信");
    }

}

class UniCom implements Message {

    @Override
    public void sendMessage() {
        System.out.println("联通发送短信");
    }

}

新建门面类:

public class FaceMessage {
    
    private ZhiFuBao zhiFuBao;
    
    private UnionPay unionPay;
    
    private UniCom uniCom;
    
    public FaceMessage(){
        zhiFuBao = new ZhiFuBao();
        unionPay = new UnionPay();
        uniCom = new UniCom();
    }
    
    public void send(){
        zhiFuBao.sendMessage();
        unionPay.sendMessage();
        uniCom.sendMessage();
    }

}

测试

public class App {
    public static void main(String[] args) {
        //用外观模式将以下的代码封装
        // Message zfb = new ZhiFuBao();
        // Message unionpay = new UnionPay();
        // Message unicom = new UniCom();
        // zfb.sendMessage();
        // unionpay.sendMessage();
        // unicom.sendMessage();
        new FaceMessage().send();
    }

}

 

posted @ 2019-06-28 12:56  Chris,Cai  阅读(132)  评论(0编辑  收藏  举报