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

设计模式之策略模式(基于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等等,那可以按需拓展,不会影响到原来的。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: three.js场景编辑器是一个用于创建和编辑three.js场景的图形用户界面工具。它允许用户通过可视化方式添加、删除和修改场景中的对象,同时还提供了一些工具和功能来进行相机控制、光源调整、材质管理等操作。 通过场景编辑器,用户可以很容易地创建一个包含几何体、光源和材质的三维场景。用户可以通过简单的拖拽和点击操作在场景中添加几何体,例如立方体、球体等,也可以导入自定义的模型文件来创建更复杂的几何体。 场景编辑器还提供了对场景中对象的属性进行编辑的功能,例如改变几何体的位置、旋转和缩放等操作。用户可以通过鼠标控制来实时预览对象的变化,并进行微调。 此外,场景编辑器还提供了相机控制工具,允许用户通过拖拽和缩放来调整视角和镜头位置。用户可以轻松切换不同的相机模式,例如透视投影和正交投影,并实时查看相机的视图。 光源也是场景编辑器中的一个重要组件。用户可以调整光源的强度、颜色和位置等属性,并实时预览光源对场景的影响。此外,还可以添加多个光源,以实现更复杂的光照效果。 最后,场景编辑器还提供了材质管理功能,允许用户为对象应用不同的材质和纹理。用户可以选择不同的材质类型,并进行颜色、透明度、纹理等属性的设置。 总之,three.js场景编辑器是一个强大的工具,它简化了创建和编辑three.js场景的过程,使用户能够以可视化的方式快速构建出复杂的三维场景。它适用于开发人员、设计师和艺术家等各个领域的用户,为他们提供了一个直观、高效的创作平台。 ### 回答2: three.js场景编辑器是一个用于创建、编辑和管理three.js场景的工具。它提供了一个直观的用户界面,使用户可以轻松地添加、移动或删除对象,设置对象的属性,如位置、旋转和缩放,并为对象应用材质和纹理。场景编辑器还允许用户通过拖放操作从预设库中添加对象,如几何体、灯光和相机,以及从文件系统导入其自定义模型。除了基本操作之外,场景编辑器还提供了高级功能,如动画编辑和脚本编写。 使用场景编辑器,用户可以快速构建复杂的三维场景,无需编写代码。它为用户提供了一种可视化的方式来创建和调整场景中的元素,使用户能够实时查看并修改场景。在编辑器中创建的场景可以保存为JSON或OBJ格式,并且可以轻松地导出到其他three.js项目中使用。 场景编辑器还具有与其他用户共享场景的功能。用户可以将他们创建的场景分享给其他用户,或者从其他用户那里获取灵感和借鉴。这为用户提供了一个交流和学习的平台,有助于促进three.js社区的发展和成长。 总之,three.js场景编辑器是一个功能强大且易于使用的工具,它为用户提供了创建和编辑three.js场景的便捷方式。无论是初学者还是有经验的开发人员,都可以受益于它的功能,从而更轻松地构建出惊人的三维场景。 ### 回答3: three.js场景编辑器是一个用于创建和编辑3D场景的工具。它基于three.js库,提供了一个用户友好的界面,使用户可以轻松地添加、编辑和管理3D模型、光源、材质、纹理等元素,以创建逼真的3D场景场景编辑器的主要功能包括创建和管理场景、添加和调整3D模型、设置光源和阴影、调整材质和纹理等。用户可以通过拖拽操作将3D模型导入场景,并使用编辑器提供的工具进行位置、旋转和缩放等调整。同时,用户可以选择不同类型的光源,并设置其位置、颜色和强度来实现适合场景的光照效果。此外,编辑器还提供了丰富的材质和纹理选项,让用户可以为模型添加不同的外观效果。 除了基本的编辑功能,场景编辑器还提供了一些高级功能,如动画编辑和脚本编写。用户可以使用动画编辑功能创建和编辑模型的动画效果,包括模型的运动、旋转和缩放等。同时,用户还可以使用脚本编写功能,通过编写JavaScript代码来实现更复杂的交互和动画效果。 总之,three.js场景编辑器是一个功能强大且易于使用的工具,它为用户提供了便捷的方式来创建和编辑3D场景。无论是开发者还是设计师,都可以利用这个编辑器来实现自己的创意,并打造出独特而精美的3D场景

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值