js策略模式
2021-04-13 07:28
标签:color switch 自带 安卓 div pre style if else 影响 在用socket接收数据时(包括前后端),会对不同功能的模块分开处理(满足单一开闭等原则),比如聊天模块,聊天里又区分世界聊天以及队伍聊天等,还有一些其他等模块,刚开始会用if else 或者switch 这些来对每个模块来处理,但后面发现,每一次模块的增加都要修改代码,而且 if 语句非常的长,于是使用策略模式来处理。(socket.io有这样的不同模块的分发功能,这里用websocket(websocket可以满足在苹果 安卓 web 微信等地方,但socket.io有些地方需要复杂一些的处理,比如socket.io自带有buffer,而微信中(还是微信小程序,不记得了)不允许有其他的buffer,就会出问题),所以要自个处理不同模块) 单一原则:每个模块的功能互不影响,功能单一 开闭原则:模块的增加和删除不修改原来的代码 创建 strategy.js 文件 接着创建 websocket.js 文件 这样子socket的地方就不用再做处理了,全部转移到了strategy.js 文件,现在每个模块就单独在该模块的函数下处理了,增加模块就直接增加函数,在函数里面处理对应的逻辑,实现单一原则,但现在还没有实现开闭原则,接下来可以细点处理,把每个模块(就是对应的函数)自动映射成单独的文件。 js策略模式 标签:color switch 自带 安卓 div pre style if else 影响 原文地址:https://www.cnblogs.com/GH-123/p/12388737.html一。遇到的问题
二。需要解决的问题
三。策略模式
var strategies = {
chat: function(message){
},
}
module.exports = strategies;
var strategy = require("./strategy");
。。。
在接受到的地方直接使用,data[1] 为模块,比如chat模块,data[2] 为数据,需要前后端统一
strategy[data[1]](data[2]);