什麼是外觀模式:
外觀模式其實就是封裝,爲子系統封裝對外的一個接口,屏蔽內部複雜的操作,例如,我們要註冊一家公司,我們可以找代理註冊公司的機構,讓它爲我們處理註冊所有的細節,而我們只需要面對註冊公司處理流程就行。
開發中外觀模式場景:
常見的util包,例如spring的beanutils,FileUtils以及其他的工具類,其實使用的都是外觀模式。
外觀模式實現例子:
實現的場景是一款軟件產品開發過程,產品的開發需要各個部門的合作,而對外的話,只需提供一個銷售的接口。
/**
* 部門接口
* @author liuxg
* @date 2016年5月27日 下午12:17:22
*/
public interface IDepartment {
void remit(); //部門職能
}
class Research implements IDepartment{
@Override
public void remit() {
System.out.println("研發產品");
}
}
class Business implements IDepartment{
@Override
public void remit() {
System.out.println("定需求");
}
}
class Sale implements IDepartment{
@Override
public void remit() {
System.out.println("賣產品");
}
}
提供一個外觀類,並且給客戶端提供一個接口,封裝具體的實現細節
/**
* 一個代理類,將所有的流程綁定成一個方法
* @author liuxg
* @date 2016年5月27日 下午5:26:46
*/
public class RegisterFacade {
public void buyProduct(){
Business bs = new Business();
bs.remit();
Research re = new Research();
re.remit();
Sale sale = new Sale();
sale.remit();
}
}
客戶端只需訪問一個接口即可
public class Client {
public static void main(String[] args) {
RegisterFacade registerFacade = new RegisterFacade();
registerFacade.buyProduct();
}
}