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
   * 原有方法維持不變,在原有方法上再掛載其他方法來滿足現有需求;
   * 函數的解耦,將函數拆分成多個可複用的函數,
   * 再將拆分出來的函數掛載到某個函數上,實現相同的效果但增強了複用性
   */
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章