迪米特法则(最少知识原则):一个软件实体应当尽可能少的与实体发生作用。
例子:比如公司注册,需要很多过程,自己去各个政府机构签文档,就很多麻烦,这是就需要一个对象,这个对象有注册公司的所有方法,我们就只需调用这个对象的注册方法便完成需求
工商局
public interface 工商局 {
void checkName(); //核名
}
class 海淀区工商局 implements 工商局 {
@Override
public void checkName() {
System.out.println("检查名字是否有冲突!");
}
}
税务局
public interface 税务局 {
void taxCertificate(); //办理税务登记证
}
class 海淀税务局 implements 税务局 {
@Override
public void taxCertificate() {
System.out.println("在海淀税务局办理税务登记证!");
}
}
银行
public interface 银行 {
void openAccount(); //开户
}
class 中国工商银行 implements 银行 {
@Override
public void openAccount() {
System.out.println("在中国工商银行开户!");
}
}
质监局
public interface 质检局 {
void orgCodeCertificate(); //办理组织机构代码证
}
class 海淀质检局 implements 质检局 {
@Override
public void orgCodeCertificate() {
System.out.println("在海淀区质检局办理组织机构代码证!");
}
}
门面对象
public class RegisterFacade {
public void register(){
工商局 a = new 海淀区工商局();
a.checkName();
质检局 b = new 海淀质检局();
b.orgCodeCertificate();
税务局 c = new 海淀税务局();
c.taxCertificate();
银行 d = new 中国工商银行();
d.openAccount();
}
}
测试Client1.java
public class Client1 {
public static void main(String[] args) {
// 工商局 a = new 海淀区工商局();
// a.checkName();
// 质检局 b = new 海淀质检局();
// b.orgCodeCertificate();
// 税务局 c = new 海淀税务局();
// c.taxCertificate();
// 银行 d = new 中国工商银行();
// d.openAccount();
new RegisterFacade().register();
}
}
在我们的编程中,我们不知不觉就在使用外观模式!