原始实现获取用户信息的代码
function getUserName() {
return 'name';
}
function getUserAge() {
return 'age';
}
var userName = getUserName();
var userAge = getUserAge();
console.log(userName,userAge);
使用Facade模式实现的代码
function getUserName() {
return 'name';
}
function getUserAge() {
return 'age';
}
function getUserInfo() {
var userInfo = {
userName: getUserName(),
userAge: getUserAge(),
};
return userInfo;
}
var userInfo = getUserInfo();
console.log(userInfo);
从两份代码中可以看出,代码2主要是用getUserInfo这个函数封装了多个获取用户信息的接口。用户只需要直接调用这个函数就可以获取用户信息。而不需要单独调用每个获取信息的接口。如果我们在系统的多个模块中调用getUserName、getUserAge这些接口,然后接口名字被修改了,那整个系统的代码都需要修改。而如果我们系统每个模块都统一调用getUserInfo这个接口,不仅获取用户信息方便,而且其他接口修改时,只需要修改getUserInfo中的该接口对应的代码。修改范围大大减小。