工商局超类型及实现类:
package facade_mode; /** * 工商局类型 */ public interface GongShangJu { /** * 检查名字 */ public void checkName(); } /** * 海淀区工商局 */ class HaiDianQuGongShangJu implements GongShangJu { /** * 检查名字 */ @Override public void checkName() { System.out.println("检查名字是否有冲突!"); } }
质检局超类型及实现类:
package facade_mode; /** * 质检局类型 */ public interface ZhiJianJu { /** * 办理组织机构代码证 */ void orgCodeCertificate(); } /** * 海淀区质检局 */ class HaiDianQuZhiJianJu implements ZhiJianJu { /** * 办理组织机构代码证 */ @Override public void orgCodeCertificate() { System.out.println("在海淀区质检局办理组织机构代码证!"); } }
税务局超类型及实现类:
package facade_mode; /** * 税务局类型 */ public interface ShuiWuJu { /** * 办理税务登记证 */ void taxCertificate(); } /** * 海淀区税务局 */ class HaiDianQuShuiWuJu implements ShuiWuJu { /** * 办理税务登记证 */ @Override public void taxCertificate() { System.out.println("在海淀区税务局办理税务登记证!"); } }
银行超类型及实现类:
package facade_mode; /** * 银行 */ public interface YinHang { /** * 开户 */ void openAccount(); } /** * 中国工商银行 */ class ZhongGuoGongShangYinHang implements YinHang { /** * 开户 */ @Override public void openAccount() { System.out.println("在中国工商银行开户!"); } }
门面对象:
package facade_mode; /** * 办理注册公司流程的门面对象 * 外观模式(又称门面模式)中的核心对象 * 开发中用的非常多, 客户不必一个个去调用. 就是封装, 只调用一次, 由门面对象去处理关系 */ public class RegisterFacade { /** * 封装了注册流程 */ public void register(){ //注册公司办理流程为: 跑工商局 -> 质检局 -> 税务局 -> 银行 GongShangJu a = new HaiDianQuGongShangJu(); a.checkName(); ZhiJianJu b = new HaiDianQuZhiJianJu(); b.orgCodeCertificate(); ShuiWuJu c = new HaiDianQuShuiWuJu(); c.taxCertificate(); YinHang d = new ZhongGuoGongShangYinHang(); d.openAccount(); } }
测试类:
package facade_mode; public class Client { public static void main(String[] args) { //注册公司办理流程为: 跑工商局 -> 质检局 -> 税务局 -> 银行 // GongShangJu a = new HaiDianQuGongShangJu(); // a.checkName(); // // ZhiJianJu b = new HaiDianQuZhiJianJu(); // b.orgCodeCertificate(); // // ShuiWuJu c = new HaiDianQuShuiWuJu(); // c.taxCertificate(); // // YinHang d = new ZhongGuoGongShangYinHang(); // d.openAccount(); new RegisterFacade().register();//创建门面对象(当做工具类吧), 由此对象去完成注册, 客户端不必关注注册的细节 } }
执行结果:
检查名字是否有冲突! 在海淀区质检局办理组织机构代码证! 在海淀区税务局办理税务登记证! 在中国工商银行开户!
谢谢声明出处!