描述:外观模式的含义是子系统只允许被Facade访问,举个例子,现在去银行办卡只需要提供给身份证,手机号,地址以及办卡类别,其他一切都不需要自己动手,自动办卡机就能吐出一张新卡。外观模式示意图如下:
UML类图如下:
测试代码如下:
1、办卡接口类
package com.java.facade;
public interface ProcessCard {
public void idNumber();
public void phone();
public void address();
public void cardType();
}
package com.java.facade;
public class ProcessCardImpl implements ProcessCard {
@Override
public void idNumber() {
System.out.println("向自动办卡机输入身份证号码...");
}
@Override
public void phone() {
System.out.println("向自动办卡机输入电话号码...");
}
@Override
public void address() {
System.out.println("向自动办卡机输入家庭地址...");
}
@Override
public void cardType() {
System.out.println("向自动办卡机输入办卡类别...");
}
}
3、Facade角色类
package com.java.facade;
public class Facade {
private ProcessCard processCard = new ProcessCardImpl();
public void processCard(String id, String phone, String address, String type){
processCard.idNumber();
processCard.phone();
processCard.address();
processCard.cardType();
}
}
package com.java.facade;
public class FacadeTest {
public static void main(String[] args) {
Facade facade = new Facade();
facade.processCard("330227****2222", "13588235943", "鄞州区邱隘镇", "储蓄卡");
}
}
5、测试结果
向自动办卡机输入身份证号码...
向自动办卡机输入电话号码...
向自动办卡机输入家庭地址...
向自动办卡机输入办卡类别...