zoukankan      html  css  js  c++  java
  • 设计模式——外观模式

         外观模式提供了一个统一的接口,用来访问子系统中的一群接口。外观定义了一个高层接口,让子系统更容易使用。

         简单的说,外观模式就是把复杂的系统的具体操作封装起来,只暴露一个简单的接口,做和众多子系统之间松耦合。

         提到一个设计原则:最少知识原则,只和你的密友谈话。(HeadFirst中的描述)具体的说就是让类和类之间尽量松耦合,类与类之间的依赖降到最低,各司其职。

         迪米特法则:一个软件实体应当尽可能少的与其他实体发声相互作用。

         用一个注册公司的系统来说明问题:

         AIC 工商局
         BQS 质监局
         Bank 银行
         TaxB 税务局

        

    public interface AIC  {
    	void checkName();  
    }
    
    class BJAIC implements AIC {
    
    	@Override
    	public void checkName() {
    		System.out.println("检查名字是否有冲突!");
    	}
    
    }
    
    
    public interface BQS {
    	void  orgCodeCertificate();  //办理组织机构代码证
    }
    
    class BJBQS implements BQS {
    
    	@Override
    	public void orgCodeCertificate() {
    		System.out.println("在北京质检局办理组织机构代码证!");
    	}
    
    }
    
    public interface Bank {
    	void  openAccount();  //开户
    }
    
    
    class BJBank implements Bank {
    
    	@Override
    	public void openAccount() {
    		System.out.println("在北京银行开户!");
    	}
    
    }
    
    public interface TaxB {
    	void taxCertificate();  //办理税务登记证
    }
    
    
    class BJTaxB implements TaxB {
    
    	@Override
    	public void taxCertificate() {
    		System.out.println("在北京税务局办理税务登记证!");
    	}
    
    }
    
    public class RegisterFacade {
    	public void register(){
    		AIC  a = new BJAIC();
    		a.checkName();
    		BQS b = new BJBQS(); 
    		b.orgCodeCertificate();
    		TaxB  c  = new BJTaxB();
    		c.taxCertificate();
    		Bank  d = new BJBank();
    		d.openAccount();
    	}
    }
    
    public class Client {
    	public static void main(String[] args) {
    		//使用外观模式之后注册公司就是这么简单!!还有谁!!
    		new RegisterFacade().register();
    	}
    }
    

        

  • 相关阅读:
    Spring事务的传播行为、隔离级别、回滚、只读和过期
    Spring 使用XML文件的方式配置事务
    SpringJDBCTemplate
    Spring事物管理
    【运维技术】Zookeeper单机以及集群搭建教程
    【运维技术】kafka三实例集群环境搭建及测试使用
    【运维技术】redis(一主两从三哨兵模式搭建)记录
    【运维技术】shell脚本实现线程挂掉,自动重启功能
    【运维技术】slc pm 启动不了,异常排除问题记录
    【知识总结】Java类初始化顺序说明
  • 原文地址:https://www.cnblogs.com/wxisme/p/4541085.html
Copyright © 2011-2022 走看看