一.迪米特法则(最少知识原则)
- 一个软件实体应当尽可能少的与其他实体发生相互作用。
二.外观模式
- 为子系统提供统一的入口,封装子系统的复杂性,便于客户端调用。
- 它的核心是什么呢,就是为我们的子系统提供一个统一的入口,封装子系统的复杂性,子系统里边有多复杂我不管,对于客户来说,只跟他打交道便于客户调用,客户呢只要知道最少的知识就行了,我只要知道你就行了,至于你里边怎么回事我不管。就像我们现在用手机一样,我只要知道触摸屏怎么点就行了,至于说触摸屏跟主板怎么打交道?怎么跟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):组合模式
设计模式(9):外观模式
设计模式(10):享元模式
设计模式(11):适配器模式
设计模式(12):代理模式
设计模式(13):模板方法模式
设计模式(14):命令模式
设计模式(15):迭代器模式
设计模式(16):观察者模式
设计模式(17):中介者模式
设计模式(18):状态模式
设计模式(19):策略模式
设计模式(20):责任链模式
设计模式(21):备忘录模式
设计模式(22):解释器模式
设计模式(23):访问者模式