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
   * 原有方法维持不变,在原有方法上再挂载其他方法来满足现有需求;
   * 函数的解耦,将函数拆分成多个可复用的函数,
   * 再将拆分出来的函数挂载到某个函数上,实现相同的效果但增强了复用性
   */
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Node.js设计模式是一本详细解释了Node.js底层知识和设计方法的书籍。Node.js作为一个基于事件驱动、非阻塞I/O模型的JavaScript运行环境,具有许多独特的设计模式和最佳实践。这本书提供了关于如何使用这些设计模式来构建可扩展和高性能的Node.js应用程序的指导。 在Node.js中,装饰模式是一种通过继承的方式为一个基类对象扩展功能的方法。通过继承基类对象,我们可以在子类中添加新的功能以扩展原有功能。这种模式可以使得代码更具灵活性和可维护性,同时也遵循了面向对象的设计原则。 举个例子来说明装饰模式在Node.js中的应用。假设我们有一个基类对象代表一颗圣诞树,一开始它没有任何装饰品。然后,我们可以创建一个装饰器类来继承基类对象,并在子类中添加额外的装饰品功能。通过这种方式,我们可以动态地向圣诞树添加不同的装饰品,而不需要修改基类对象的代码。 在Node.js中实现装饰模式的一种方式是使用util模块的inherits方法来实现继承。我们可以创建一个装饰器类,并在该类中继承基类对象。然后,我们可以在装饰器类中重写基类对象的方法,并在方法中添加额外的功能。 总结起来,Node.js设计模式是一本详细解释了Node.js底层知识和设计方法的书籍。而装饰模式则是一种通过继承的方式为一个基类对象扩展功能的方法,在Node.js中可以使用util模块的inherits方法来实现继承。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [nodejs设计模式](https://download.csdn.net/download/ariflight/10460182)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT3_1"}}] [.reference_item style="max-width: 33.333333333333336%"] - *2* [《Node.js开发实战详解》学习笔记](https://blog.csdn.net/diankan7855/article/details/101768936)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT3_1"}}] [.reference_item style="max-width: 33.333333333333336%"] - *3* [NodeJS设计模式(一)](https://blog.csdn.net/It_sharp/article/details/89605464)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT3_1"}}] [.reference_item style="max-width: 33.333333333333336%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值