外观模式
【摘要】
定义:它为子系统中的一组接口提供一个统一的高层接口。这一接口使得子系统更加容易使用。(体现为service和dao,一个service可以调用多个dao)
目的:对多个方法进行封装,提供出一个统一的接口。
优点:1.实现客户端和子系统的松耦合,让子系统内部的模块能更容易扩展和维护
&...
定义:它为子系统中的一组接口提供一个统一的高层接口。这一接口使得子系统更加容易使用。(体现为service和dao,一个service可以调用多个dao)
目的:对多个方法进行封装,提供出一个统一的接口。
优点:1.实现客户端和子系统的松耦合,让子系统内部的模块能更容易扩展和维护
2.对客户实现了封装
3.提供了统一的接口
缺点:1.增加新的子系统可能需要修改外观类或客户端的源代码。
2.代码过于臃肿
类图:
代码:
方法接口
public interface Login{
public void login();
}
public interface SelectData{
public void getData();
}
public interface Check{
public void check();
}
方法的实现
public class LoginImpl implements Login {
public void login(){
system.out.print("登录输入")
};
}
public class SelectDataImpl implements SelectData{
public void getData(){
system.out.print("根据登录获取数据")
};
}
public class CheckImpl implements Check{
public void check(){
system.out.print("检查验证")
};
}
外观角色(提供统一的接口)
public class LoginForPerson {
private LoginImpl loginImpl;
private SelectDataImpl selectDataImpl;
private CheckImpl checkImpl;
public ShapeMaker() {
loginImpl= new LoginImpl();
selectDataImpl= new SelectDataImpl();
checkImpl= new CheckImpl();
}
//提供验证功能
public void allLogin() {
loginImpl.login();
selectDataImpl.getData();
checkImpl.check();
}
//只登录不验证
public void onlyLogin() {
loginImpl.login();
}
}
调用
public class FacadeDemo {
public static void main(String[] args) {
LoginForPerson object = new LoginForPerson();
object.onlyLogin();
///或者挨个调用
new LoginImpl().login();
new SelectDataImpl().getData();
new CheckImpl().check();
}
}
文章来源: baocl.blog.csdn.net,作者:小黄鸡1992,版权归原作者所有,如需转载,请联系作者。
原文链接:baocl.blog.csdn.net/article/details/102587032
【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)