来源:http://www.bjsxt.com/
一、【GOF23设计模式】_外观模式、公司注册流程、迪米特法则
package com.test.facade; public interface 工商局 {
void checkName();//核名
} class 海淀区工商局 implements 工商局 {
@Override
public void checkName() {
System.out.println("检查名字是否有冲突!");
}
}
package com.test.facade; public interface 税务局 {
void taxCertificate();//办理税务登记证
} class 海淀区税务局 implements 税务局 {
@Override
public void taxCertificate() {
System.out.println("在海淀区税务局办理税务登记证!");
}
}
package com.test.facade; public interface 银行 {
void openAccount();//开户
} class 中国工商银行 implements 银行 {
@Override
public void openAccount() {
System.out.println("在中国工商银行开户!");
}
}
package com.test.facade; public interface 质检局 {
void orgCodeCertificate();//办理组织机构代码证
} class 海淀区质检局 implements 质检局 {
@Override
public void orgCodeCertificate() {
System.out.println("在海淀区质检局办理组织机构代码证!");
}
}
package com.test.facade;
/**
* 不使用外观模式
*/
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();
}
}
package com.test.facade;
/**
* 办理注册公司流程的门面对象
*/
public class RegisterFacade {
public void register(){
工商局 a = new 海淀区工商局();
a.checkName();
质检局 b = new 海淀区质检局();
b.orgCodeCertificate();
税务局 c = new 海淀区税务局();
c.taxCertificate();
银行 d = new 中国工商银行();
d.openAccount();
}
}
package com.test.facade;
/**
* 使用外观模式
*/
public class Client2 {
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();
}
}