设计模式之门面(外观)模式

描述:外观模式的含义是子系统只允许被Facade访问,举个例子,现在去银行办卡只需要提供给身份证,手机号,地址以及办卡类别,其他一切都不需要自己动手,自动办卡机就能吐出一张新卡。外观模式示意图如下:



UML类图如下:



测试代码如下:

1、办卡接口类

package com.java.facade;

public interface ProcessCard {
	public void idNumber();
	public void phone();
	public void address();
	public void cardType();
}


2、办卡接口实现类

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();
	}
}


4、测试类

package com.java.facade;

public class FacadeTest {

	public static void main(String[] args) {
		Facade facade = new Facade();
		facade.processCard("330227****2222", "13588235943", "鄞州区邱隘镇", "储蓄卡");
	}

}

5、测试结果

向自动办卡机输入身份证号码...
向自动办卡机输入电话号码...
向自动办卡机输入家庭地址...
向自动办卡机输入办卡类别...


猜你喜欢

转载自blog.csdn.net/liangtianmeng/article/details/72170612