JavaScript设计模式组合设计模式案例

JavaScript设计模式组合设计模式案例

目录

前言

组合设计模式的业务场景

组合设计模式小案例

前言

组合设计模式是用于将多个部分通过组合的方式行成一个整体,就比如我们去吃饭,点了一份米饭和一份鱼香肉丝,这些东西可以看成一个部分,通过组合的方式可以组成一个新的产品,鱼香肉丝盖饭,这就是组合设计模式

组合设计模式的业务场景

表单用于收集用户数据,比如登录,注册,或者一些信息填报,由于这些表单都是类似的,如果我们一个一个去做,里面充满了很多重复的东西,增加了工作量,我们可以使用组合设计模式

组合设计模式小案例

一个餐馆的运转需要一些雇佣一些人手,但是这些雇佣的人手都有一个共同点,我们需要对其支付一定的薪酬作为劳动的回报,其次他们还需担负某些任务职责,可能需要向某人汇报餐馆情况,也有可能会拥有下属等等,我们来实现一下

声明一个员工类,我们对于新招聘员工需要提供三个参数,员工姓名,员工薪资和员工所任职岗位,还可进行获取员工姓名,对员工的薪资进行获取和修改以及获取员工当前任职职位和对员工进行调岗的操作

class Staff { //员工名 员工薪资 员工岗位 constructor(name, salary, position) { this.name = name; this.salary = salary; this.position = position; } // 获取员工名字 getName() { return this.name; } //修改员工薪资 setSalary(salary) { this.salary = salary; } // 获取员工薪资 getSalary() { return this.salary; } // 设置员工岗位 setPosition(position) { this.position = position; } // 获取员工岗位 getPosition() { return this.position; } }

在声明一个店铺类,店铺类是对新招聘员工进行添加到该店铺人员中,以及对于该店铺员工的职位信息进行查看和对当前用工成本进行统计

class StoreMembers { constructor() { //店铺人员总职员 this.employees = []; } // 往店铺总职员添加员工 addEmployee(employee) { this.employees.push(employee); } // 获取店铺职员总开销 getNetSalaries() { let netSalary = 0; netSalary = this.employees.reduce((total, currt) => total.getSalary() + currt.getSalary()) return netSalary; } // 获取店铺职员信息名单 getPositionList() { return (this.employees.map(res => ({ name: res.getName(), position: res.getPosition(), salary: res.getSalary() }))) } }

我们对新招聘员工进行添加到店铺总职员中并且获取到该店铺对于职员的总开销以及获取店铺总职员信息名单

// 创建俩个员工类实例 const xh = new Staff("小红", 12000, '服务员'); const xm = new Staff("小明", 10000, '收银员'); // 创建店铺类 const storeMembers = new StoreMembers(); //往店铺中添加新的职员 storeMembers.addEmployee(xh); storeMembers.addEmployee(xm); //获取店铺职员的总薪资 console.log("职员薪资总额:", storeMembers.getNetSalaries()); //获取店铺职员总职位信息 console.log("职员总职位信息:", storeMembers.getPositionList());

组合设计模式让相互关联的数据产生了结构性,无论是直观的去看还是去修改当前数据的关系,都只需要关心当前下层数据的东西,因此降低了数据之间的复杂程度,提高了代码可维护性

到此这篇关于JavaScript设计模式组合设计模式案例的文章就介绍到这了,更多相关JavaScript 组合模式内容请搜索易知道(ezd.cc)以前的文章或继续浏览下面的相关文章希望大家以后多多支持易知道(ezd.cc)!

推荐阅读

    word组合快捷键|word快速组合

    word组合快捷键|word快速组合,,word快速组合在word中如何将两张图片合在一起只需一键【组合】即可完成。以下是详细介绍:在word中如何将两

    取消组合的快捷键|取消组合的快捷键ps

    取消组合的快捷键|取消组合的快捷键ps,,取消组合的快捷键ps1,首先,在右下方的图层栏里,选中要打散的图形所在的图层。2,选好图层之后,在左侧工

    1.设计模式概述

    1.设计模式概述,模式,原则,[toc]1.为什么要使用设计模式使用设计模式可以重构整体架构代码、提交代码复用性、扩展性、减少代码冗余问题。

    为什么WPS表单总是不打开

    为什么WPS表单总是不打开,,为什么WPS表格总是打不开??百度知道为您找到了6条优质回答span>a,type:cluster">很有可能文件已经损坏。恢复

    laravel-admin|自定义表单与验证

    laravel-admin|自定义表单与验证,表单,场景,场景:很多时候,由于我们业务场景比较特殊,需要自定义表单,然后框架给我提供了对应表单组建!案列:以

    电脑组合屏幕|电脑怎么组屏

    电脑组合屏幕|电脑怎么组屏,,1. 电脑怎么组屏主板上有两个连接显示器的 一个vga 一个是dvi 两个能同时使用,这个主板是可以支持双屏显示的,

    罗技宏键盘快捷键|罗技组合键宏命令

    罗技宏键盘快捷键|罗技组合键宏命令,,1. 罗技组合键宏命令罗技鼠标宏的设置步骤如下:1.我们根据我们的鼠标型号,在罗技的官网下载对应的鼠标

    cad组合快捷键|cad组合快捷键设置

    cad组合快捷键|cad组合快捷键设置,,cad组合快捷键设置1、不同版本CAD菜单位置有差异,我们点击修改然后在里面找到合并命令,或者是使用快捷命