设计模式——外观模式

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

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

     提到一个设计原则:最少知识原则,只和你的密友谈话。(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();
	}
}

 

 

 

    

posted @ 2015-05-30 21:42  Pickle  阅读(673)  评论(0编辑  收藏  举报