一.迪米特法则(最少知识原则)
- 一个软件实体应当尽可能少的与其他实体发生相互作用。
二.外观模式
- 为子系统提供统一的入口,封装子系统的复杂性,便于客户端调用。
- 它的核心是什么呢,就是为我们的子系统提供一个统一的入口,封装子系统的复杂性,子系统里边有多复杂我不管,对于客户来说,只跟他打交道便于客户调用,客户呢只要知道最少的知识就行了,我只要知道你就行了,至于你里边怎么回事我不管。就像我们现在用手机一样,我只要知道触摸屏怎么点就行了,至于说触摸屏跟主板怎么打交道?怎么跟CPU打交道?怎么跟电池打交道我一概不管。
三.以注册公司为例,代码实现
public class HangzhouBusiness{public void checkName() {System.out.println("工商局检查名称是否重复");}
}
public class HangzhouInspection{public void dealWithCode() {System.out.println("质检局办理组织机构代码证");}
}
public class HangzhouTaxation{public void dealWithCertificate() {System.out.println("税务局办理税务登记证");}
}
public class HangzhouBank{public void openAccount() {System.out.println("银行开户");}
}
/*** 注册公司门面对象*/
public class RegisterCompanyFacade {public void registerCompany() {HangzhouBusiness hangzhouBusiness = new HangzhouBusiness();HangzhouInspection hangzhouInspection = new HangzhouInspection();HangzhouTaxation hangzhouTaxation = new HangzhouTaxation();HangzhouBank hangzhouBank = new HangzhouBank();hangzhouBusiness.checkName();hangzhouInspection.dealWithCode();hangzhouTaxation.dealWithCertificate();hangzhouBank.openAccount();}
}
/*** 外观模式*/
public class App {public static void main(String[] args) {RegisterCompanyFacade registerCompanyFacade = new RegisterCompanyFacade();registerCompanyFacade.registerCompany();}
}
更多设计模式学习:
设计模式(1):介绍
设计模式(2):单例模式
设计模式(3):工厂模式
设计模式(4):建造者模式
设计模式(5):原型模式
设计模式(6):桥接模式
设计模式(7):装饰器模式
设计模式(8):组合模式
设计模式持续更新中…