NodeJS常见设计模式

/**
 * @event  nodejs常见设计模式
 */



/**
 * @event  单一职责(一个对象或方法只做一件事情)
 * @description
 * 一个对象或方法只做一件事情。
 * 如果一个方法承担了过多的职责,那么在需求的变迁过程中,需要改写这个方法的可能性就越大。
 * 应该把对象或方法划分成较小的粒度。
 */

 //团队
class Team {
    getTeamAll() {

    }
    getTeamById() {

    }
};

//用户
class User {
    getUserAll(){

    }
    getUserById(){

    }
}

//部门
class Department{
    getDepartmentAll(){

    }
    getDepartmentById(){

    }
}

/**
 * @event   适配器模式(继承)
 * @description
 * 代码共享,减少创建类的工作量,每个子类都拥有父类的方法和属性
 * 提高代码重用性
 * 提高代码的扩展性等
 */

 class Master{
     constructor(){
         this.name = "master";
         this.age = 22;
     }
     
     method(){
         return "master=>method"
     }
 }

 class Slave extends Master{
    constructor(){
        super();
    }
    slaveMethod(){
        this.name = "slave";
        console.log(this.name, master.name, this.method());
    }
    method(){
        return "slave=>method"
    }
 };
 new Slave().slaveMethod();

/**
 * @event  开放封闭原则
 * @description
 * 当需要改变一个程序的功能或者给这个程序增加新功能的时候,
 * 可以使用增加代码的方式,尽量避免改动程序的源代码,防止影响原系统的稳定.
 * 如果不遵守开放封闭原则,更改源码,则很可能出现更多的bug
 */

 /**
  * @event 中间件/管道(middleware)
  * 一个功能单元的输出是下一个功能单元的输入
  * 比如express的next向下执行,这期间就维护着一个中间件队列
  */

  /**
   * @event  装饰者模式(抽象方法)
   * @description
   * 原有方法维持不变,在原有方法上再挂载其他方法来满足现有需求;
   * 函数的解耦,将函数拆分成多个可复用的函数,
   * 再将拆分出来的函数挂载到某个函数上,实现相同的效果但增强了复用性
   */
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章