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