天天看點

外觀設計模式

什麼是外觀模式

外觀模式(Facade Pattern)門面模式,隐藏系統的複雜性,并向用戶端提供了一個用戶端可以通路系統的接口。這種類型的設計模式屬于結構型模式,它向現有的系統添加一個接口,來隐藏系統的複雜性。

這種模式涉及到一個單一的類,該類提供了用戶端請求的簡化方法和對現有系統類方法的委托調用。

外觀設計模式
package com.example.demo.appearance;

/**
 *  微信推送消息
 */
public interface WeChatMessage {
    void pushMessage();
}      
package com.example.demo.appearance;

/**
 *  微信推送接口實作類
 */
public class WeChatMessageImpl implements WeChatMessage {
    @Override
    public void pushMessage() {
        System.out.println("微信推送消息...");
    }
}      
package com.example.demo.appearance;

/**
 *  發送短信接口
 */
public interface SmsMessage {
     void sendMsg();
}      
package com.example.demo.appearance;

/**
 *  Sms 發送短信實作類
 */
public class SmsMessageImpl implements SmsMessage {
    @Override
    public void sendMsg() {
        System.out.println("Sms 發送短信...");
    }
}      
package com.example.demo.appearance;

/**
 *  郵件消息接口
 */
public interface EmailMessage {
    void sendMessage();
}      
package com.example.demo.appearance;

/**
 *  email 接口實作類
 */
public class EmailMessageImpl implements EmailMessage {
    @Override
    public void sendMessage() {
        System.out.println("郵件發送消息...");
    }
}      
package com.example.demo.appearance;

/**
 *  門面 将多個方法封裝在一起
 */
public class Computer {

    EmailMessage emailMessage;
    SmsMessage smsMessage;
    WeChatMessage weChatMessage;

    public Computer(){
        emailMessage=new EmailMessageImpl();
        smsMessage=new SmsMessageImpl();
        weChatMessage=new WeChatMessageImpl();
    }

    public void sendMsg(){
        emailMessage.sendMessage();
        smsMessage.sendMsg();
        weChatMessage.pushMessage();
    }

}      
package com.example.demo.appearance;

/**
 *  測試
 */
public class Test {
    public static void main(String[] args) {
        Computer computer=new Computer();
        computer.sendMsg();
    }
}