策略模式——多重if-else解决方案

本文讲述了如何利用策略模式简化if语句,提升代码结构,增强代码可维护性和复用性,举例说明了从基本优化到高级应用的过程。

概念

大量的 if 判断操作,逻辑比较复杂,并且处理起来相对麻烦。可以采用策略模式来优化分支代码。
策略模式 💤:是一种行为设计模式,它允许你在运行时根据不同情况选择不同的算法或行为。
设计模式 🤌:就是提前第一次了解全过程,第二次直接规划不必要的坑。
我们在写代码亦是如此,一定也遇到过许多类似的场景。随着程序员经验的增加,我们对于这些常见场景的处理越来越得心应手,甚至总结出了针对性的“套路”,下次遇到此类问题直接运用“套路”解决,省心又省力。这些在软件开发过程中逐渐积累下来的“套路”就是设计模式。

设计模式的目标之一就是提高代码的可复用性、可扩展性和可维护性

例:

const game = (name) => {
   
   
  if (name === "原s") {
   
   
    console.log("启动!");
  } else if (name === "xx精英") {
   
   
    console.log("我先成盒了你们加油!");
  } else if (name === "云顶yy") {
   
   
    console.log("这就是我们之间的羁绊!");
  } else if (name === "王者zz") {
   
   
    console.log("我再也不买皮肤了!");
  } else {
   
   
    console.log("我啥也没玩");
  }
};
game("原s"); // 启动!

简单优化一下写法:

const game = (name) => {
   
   
  let obj = {
   
   
    原s: "启动!",
    xx精英: "我先成盒了你们加油!",
    云顶yy: "这就是我们之间的羁绊!",
    王者zz: "我再也不买皮肤了!",
  };
  if (obj[name]) {
   
   
    console.log(obj[name]);
  } else {
   
   
    console.log("我啥也没玩");
  }
};
game("原s"); // 启动!

这种写法只是参考了策略模式的思路,将逻辑封装到一个对象中。这种方式使得这个对象能够独立出来,只需专注于维护这个对象本身即可。如果要是每个方法都不同,那该如何去写呢?接着往下看

const game = (name) => {
   
   
  let obj = {
   
   
    原s: () => {
   
   
      console.log("启动!");
    },
    xx精英: () => {
   
   
      console.log("我先成盒了你们加油!");
    },
    云顶yy: () => {
   
   
      console.log("这就是我们之间的羁绊!");
    },
    王者zz: () => {
   
   
      console.log("我再也不买皮肤了!");</
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Southern Wind

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值