设计模式之策略模式(基于JS的编写及应用场景)

本文探讨策略模式如何优化前端列表操作,如增删查改,通过将操作封装为策略对象,提升代码复用性和灵活性。通过实例演示如何使用策略模式来避免冗余方法,适应多种业务场景。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

设计模式之策略模式(基于JS的编写及应用场景)

一.什么叫策略模式

策略模式是一种设计模式,指对象有某个行为,但是在不同的场景中,该行为有不同的实现算法。举个不太成熟的例子:大概就是我们有穿衣服这个行为,但我们在春夏秋冬四个季节有我们不同的穿衣策略,选择穿不同的衣服。

二.优点
  1. 拓展性好,可以根据我们的需求,拓展更多的行为策略出来;
  2. 符合开闭原则,拓展策略的同时,不用修改原来的策略;
三.代码编写及应用场景

举个例子,如下图
在这里插入图片描述
在做到后台管理系统的时候,列表一般都会有,而且列表一般少不了增删查改 CURD操作。那我们对每个操作进行绑定对应的操作事件时,这般会这样写:

const onAdd = () => {//增加}
const onDel = () => {//删除}
const onSearch = () => {//查询}
const onEdit = () => {//编辑修改}

这种写法可行,但就是会比较累赘,因为要一下子定义4个方法。
而且万一这个页面不止有列表的增删查改CURD,还有什么其他的比如弹窗的CURD、抽屉的CURD,甚至二级列表的CURD等等,那定义的方法就很多了,一下子好家伙,需要4*N个方法了。
在这种时候,我们就可以利用策略模式的思路,对我们的方法进行改造了,让我们的代码看起来条理性清晰点,具体代码如下:

	const tableOperateFunc = (type) => {
		let operateObj = {
			onAdd:()=>{//增加},
			onDel:()=>{//删除},
			onSearch:()=>{//查询},
			onEdit:()=>{//修改},
		}
		operateObj[type]();
	}
	tableOperateFunc('onAdd')

像上面那样,我们可以把对table的操作,都汇总tableOperateFunc 这个方法里,并且通过对象key-键值的方式,对不同的操作方法进行定义,这样代码条理性看起来会清晰很多。
而且就算中途需要插入什么新的方法,比如reduce等等,那可以按需拓展,不会影响到原来的。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值