码迷,mamicode.com
首页 > 其他好文 > 详细

外观模式

时间:2019-05-04 21:22:36      阅读:160      评论:0      收藏:0      [点我收藏+]

标签:mamicode   ima   外观   组合   pre   ace   com   div   obj   

1.

该模式就是把一些复杂的流程封装成一个接口供给外部用户更简单的使用

  • 门面角色:外观模式的核心。它被客户角色调用,它熟悉子系统的功能。内部根据客户角色的需求预定了几种功能的组合
  • 子系统角色:实现了子系统的功能。它对客户角色和Facade时未知的
  • 客户角色:通过调用Facede来完成要实现的功能

 

2.门面角色:

class Calculator{
    constructor() {
        this.sumObj=new Sum();
        this.minusObj=new Minus();
        this.multiplyObj=new Multiply();
    }
    sum(...args) {
       return   this.sumObj.sum(...args);
    }
    minus(...args) {
       return  this.minusObj.minus(...args);
    }
    multiply(...args) {
       return  this.multiplyObj.multiply(...args);
    }
}

  

3.子角色:

class Sum{
    sum(a,b) {
        return a+b;
    }
}
class Minus{
    minus(a,b) {
        return a-b;
    }
}
class Multiply{
    multiply(a,b) {
        return a * b;
    }
}

  

代码:

class Sum{
    sum(a,b) {
        return a+b;
    }
}
class Minus{
    minus(a,b) {
        return a-b;
    }
}
class Multiply{
    multiply(a,b) {
        return a * b;
    }
}
class Calculator{
    constructor() {
        this.sumObj=new Sum();
        this.minusObj=new Minus();
        this.multiplyObj=new Multiply();
    }
    sum(...args) {
       return   this.sumObj.sum(...args);
    }
    minus(...args) {
       return  this.minusObj.minus(...args);
    }
    multiply(...args) {
       return  this.multiplyObj.multiply(...args);
    }
}
let calculator=new Calculator();
console.log(calculator.sum(1,2));
console.log(calculator.minus(1,2));
console.log(calculator.multiply(1,2));

  输出:

3
-1
2
 
技术图片

外观模式

标签:mamicode   ima   外观   组合   pre   ace   com   div   obj   

原文地址:https://www.cnblogs.com/guangzhou11/p/10809791.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!