0%

Java设计模式之外观模式

外观模式(Facade Pattern),将一个操作要完成的子步骤整合到一个方法里,调用者无需担心调用顺序,以及具体的子步骤。

package com.pocketdigi.patterns.facade;
/**
 * 信件处理接口
 */
public interface LetterProcess {
    public void writeContext(String context);
    public void fillEnvelope(String address);
    public void letterIntoEnvelope();
    public void sendLetter();
}

实现

package com.pocketdigi.patterns.facade;

public class LetterProcessImp implements LetterProcess {

    @Override
    public void writeContext(String context) {
        // TODO Auto-generated method stub
        System.out.println("写内容"+context);
    }

    @Override
    public void fillEnvelope(String address) {
        // TODO Auto-generated method stub
        System.out.println("写信封"+address);
    }

    @Override
    public void letterIntoEnvelope() {
        // TODO Auto-generated method stub
        System.out.println("装信封");
    }

    @Override
    public void sendLetter() {
        // TODO Auto-generated method stub
        System.out.println("送信");

    }

}



package com.pocketdigi.patterns.facade;

public class PostOffice {
    LetterProcess letterProcess=new LetterProcessImp();
    /**
     * 将几个步骤并在一起,调用者不需要具体的实现过程
     * @param context
     * @param address
     */
    public void sendLetter(String context,String address)
    {
        letterProcess.writeContext(context);
        letterProcess.fillEnvelope(address);
        letterProcess.letterIntoEnvelope();
        letterProcess.sendLetter();
    }
}

调用

        PostOffice po=new PostOffice();
        po.sendLetter("内容", "地址");