您的位置:首页 > 编程语言 > Java开发

学习笔记——JAVA设计模式<10>外观模式

2017-06-14 16:50 405 查看
外观模式

迪米特法则(最少知识原则)

一个软件的实体应当尽可能的与其他实体发生互相作用

外观模式核心

为子系统提供统一的入口。封装子系统的复杂性,便于客户端调用。

模拟注册公司

package studyGFO;
//工商局
public interface ICB {
void checkName();//检查注册名
}
class huoxingICB implements ICB{
@Override
public void checkName() {
System.out.println("检查是否有冲突");
}
}


package studyGFO;
//质监局
public interface QSB {
void orgCodeCertificate();//办理组织机构代码证
}
class huoxingQSB implements QSB{
@Override
public void orgCodeCertificate() {
System.out.println("在质监局办理组织机构代码证");
}
}


package studyGFO;
//税务局
public interface TB {
void textCertificate();//办理税务登记证
}
class huoxingTB implements TB{
@Override
public void textCertificate() {
System.out.println("办理税务登记证");
}
}


package studyGFO;
//银行
public interface Bank {
void openAccount();//开户
}
class ICBC implements Bank{
@Override
public void openAccount() {
System.out.println("在工商银行开户");
}
}


package studyGFO;

public class Client {

public static void main(String[] args) {

//不使用外观模式
ICB icb = new huoxingICB();
icb.checkName();
QSB qsb = new huoxingQSB();
qsb.orgCodeCertificate();
TB tb = new huoxingTB();
tb.textCertificate();
Bank bank = new ICBC();
bank.openAccount();

}
}


加入外观门面

package studyGFO;

/**
* 办理注册公司流程的门面
* @author http://blog.csdn.net/thewaiting *
*/
public class Register {
public void register() {
ICB icb = new huoxingICB();
icb.checkName();
QSB qsb = new huoxingQSB();
qsb.orgCodeCertificate();
TB tb = new huoxingTB();
tb.textCertificate();
Bank bank = new ICBC();
bank.openAccount();
}
}


package studyGFO;
public class Client {
public static void main(String[] args) {
//使用外观
new Register().register();
}
}


常见的场景

使用频率高。如jdbc封装后的,commons提供的DBUtils类,Hibernate提供的工具类,Spring JDBC工具类等
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: