开启掘金成长之旅!这是我参与「掘金日新计划 · 2更文挑战」的第6天 点击查看活动详情
前言
上一篇讲了我们常见的设计模式(观察者模式),今天讲下外观模式
什么是外观模式
官方说法: 为子系统中的一组接口提供一个一致的表现,使得子系统更容易使用而不需要关注内部复杂而繁琐的细节。
大白话: 多个子系统中复杂逻辑进行抽象,从而提供一个更统一、更简洁、更易用的API。(不需要过多的关注内部是怎样的,我就给你个api里面是包含你需要的东西的,拿来用就完事了)
代码演示如下:
const userbaseinfo= ()=>{
const obj={
name:'王云飞',
phone:"18511686987",
sex:'男',
}
return obj;
}
// 用户的基础信息
const useraddressinfo= ()=>{
const obj ={
province:'江苏',
city:'苏州',
region:'红树湾花园18栋一单元101'
}
return obj;
}
// 用户的职业息
const userorderinfo= ()=>{
const obj={
orderNo:'1',
price:'0.1元',
JOBname:'小兵',
}
return obj;
}
const getuserinfo= ()=>{
const baseinfo= userbaseinfo();
const addressinfo = useraddressinfo();
const orderinfo= userorderinfo();
const obj={
...baseinfo,
...addressinfo,
...orderinfo,
}
return obj;
}
let userinfo= getuserinfo();
console.log({userinfo});
打印结果:
优点
减少系统相互依赖。
提高灵活性。
提高了安全性
缺点
不符合开闭原则,如果要改东西很麻烦。