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