外观设计模式

使用场景:

开发中各种技术框架都有外观模式的使用,比如:jdbc封装,commons中DBUtils等等

类图:



package com.gcxzflgl.facade;

public interface 工商局  {
	void checkName();  //核名
}

class 海淀区工商局 implements 工商局 {

	@Override
	public void checkName() {
		System.out.println("检查名字是否有冲突!");
	}

}
package com.gcxzflgl.facade;

public interface 税务局 {
	void taxCertificate();  //办理税务登记证
}


class 海淀税务局 implements 税务局 {

	@Override
	public void taxCertificate() {
		System.out.println("在海淀税务局办理税务登记证!");
	}

}
package com.gcxzflgl.facade;

public interface 银行 {
	void  openAccount();  //开户
}


class 中国工商银行 implements 银行 {

	@Override
	public void openAccount() {
		System.out.println("在中国工商银行开户!");
	}

}
package com.gcxzflgl.facade;

public interface 质检局 {
	void  orgCodeCertificate();  //办理组织机构代码证
}



class 海淀质检局 implements 质检局 {

	@Override
	public void orgCodeCertificate() {
		System.out.println("在海淀区质检局办理组织机构代码证!");
	}

}

包装起来:

package com.gcxzflgl.facade;

/**
 * 办理注册公司流程的门面对象
 * @author Administrator
 *
 */
public class RegisterFacade {
	public void register(){
		工商局  a = new 海淀区工商局();
		a.checkName();
		质检局 b = new 海淀质检局();
		b.orgCodeCertificate();
		税务局  c  = new 海淀税务局();
		c.taxCertificate();
		银行  d = new 中国工商银行();
		d.openAccount();
	}
}

客户端调用:

package com.gcxzflgl.facade;

public class Client1 {
	public static void main(String[] args) {
		new RegisterFacade().register();
	}
}




猜你喜欢

转载自blog.csdn.net/gcxzflgl/article/details/80051141