CTO编写的代码绝对是惊人的!

场景:当我们收到一些数据并需要处理时,由于它们来自不同的渠道(例如腾讯,头条),因此不同的渠道需要不同的处理方法。让我们编写一个简单的Demo来实现这种情况。
。解决方案1.首先,构造GeneralChannelRule基本规则的抽象类,并定义抽象方法process()。
不同的渠道需要实现此抽象方法。公共抽象类GeneralChannelRule {公共抽象无效process();} 2.编写腾讯规则类并为腾讯渠道数据定义特定的处理逻辑公共类TencentChannelRule扩展了GeneralChannelRule @Override public void process(){腾讯处理逻辑} 3.编写一个标题规则类并为标题数据定义特定的处理逻辑公共类TouTiaoChannelRule扩展了GeneralChannelRule public void process(){TouTiao处理逻辑// TouTiao处理逻辑}}}创建一个简单的ChannelRule枚举publicEnum {/ ** Headline * / TOUTIAO(“ ;“ TOUTIAO”,TENCENT(“ TENCENT”),TENCENT(“ TENCENT”)5.使用规则来处理数据。
public static void main(String [] args){//在这里,我们模拟接收到的数据,频道为TOUTIAO,标题中的数据为String sign =“ TOUTIAO”; GeneralChannelRule规则;如果(ChannelRuleEnum.TENCENT.code.equals(sign)){rule = new TencentChannelRule();},则根据相应的通道规则实现类型获取相应的通道;否则,如果(ChannelRuleEnum.TOUTIAO.code.equals(sign)){ChannelRuleEnum .TOUTIAO.code.equals(sign)){ChannelRuleEnum.TOUTIAO.code.equals(sign)){ChannelRuleEnum。 //无法匹配}}}}}} –执行rule.process();}分析:如果采用上述方法,则有两个缺点。
当我们需要添加新通道时,我们需要修改main方法中的逻辑。这违反了设计模式中的开放规则和封闭规则。
开放和封闭原则的核心思想是软件实体可以扩展而不能修改。换句话说,展开是打开的,但修改是关闭的。
添加通道后,修改代码会生成很多其他情况,这不是很优雅。为了解决以上两个问题,我们可以使用枚举类进行巧妙的优化。
新思路1.让我们调整枚举类,添加GeneralChannelRule属性,并为相应的通道构建相应的GeneralChannelRule实现类,并添加match()匹配方法。 public Enum ChannelRuleEnum {标题TOUTIAO(“ TOUTIAO”,新的TouTiaoChannelRule()),ToutiaoChannelRuleEnum; TouTiao(“ TOUTIAO”,新的TouTiaoChannelRule());腾讯频道;腾讯频道; CENTnew Channel,CENTnew Channel,CENTnew Channel,CENTER Channel,CENTnew Channel,CENTule; ChannelRuleEnum(String name,GeneralChannelRule channel){this.name = name; this.channel = channel;} //匹配num(公共ChannelRuleEnum(用于Channelname的字符串)值ChannelRuleEnum(用于ChannelEnum的字符串)value ChannelRuleEnum(用于Channelname的字符串)[value]:values){if(value.name.equals(name) ){返回值;}}返回null;} public String getName(){return name;} public GeneralChannelRule getChannel(){return channel;}} 2,重写程序public static void main(String [] args){String sign = “ TOUTIAO”; ChannelRuleEnum ChannelRule = ChannelRuleEnum.match(sign); ChannelRule channel = channelRule.process; ign);}分析:通过使用枚举类,键被绑定到枚举中规则的特定实现。
通过更改:可以减少if-else以使代码更优雅。如果需要添加通道,我们只需要编写特定的规则实现类并继承GeneralChannelRule抽象类,并在枚举类中添加新的枚举即可,而无需更改为任何原始代码。
这符合开发封闭原则。最后,以上是通过枚举巧妙地杀死if-else的解决方案。
有许多有趣的解决方案可以减少if-else(例如:状态设计模式等)。如果您有兴趣,请检查相关信息。
资料来源:www.toutiao.com/i6847406631983153672作者:Poly IT

公司: 深圳市捷比信实业有限公司

电话: 0755-29796190

邮箱: momo@jepsun.com

产品经理: 李经理

QQ: 2215069954

地址: 深圳市宝安区翻身路富源大厦1栋7楼

微信二维码

更多资讯

获取最新公司新闻和行业资料。

  • ALPS编码器在现代工程应用中的优势与特点 ALPS编码器作为一种高精度、高性能的旋转编码器,在现代工程领域中扮演着重要的角色。其优势和特点主要体现在以下几个方面:1. 高精度与可靠性:ALPS编码器以其卓越的精度和可靠性著称,能够在各种恶劣的工作环境下保持稳...
  • ALPS编码器在现代工程应用中的重要性与优势 ALPS编码器作为一种高性能的旋转编码器,在现代工程领域中扮演着极其重要的角色。它以其卓越的精度、稳定性和可靠性而著称,广泛应用于各种自动化设备和精密控制系统中。ALPS编码器能够提供精确的角度位置反馈,这对于需...
  • 编码器工作原理 编码器是将信号或数据(例如比特流)编译并转换为可用于存储、通信和传输的信号形式的设备。它可以将角位移或线位移转换成电信号。前者称为码盘,后者称为码尺。如果按照读取方式来划分,编码器可分为接触式和非接触...
  • 选择编码器的工作原理 中心轴为中心的光电码盘上有一条环形和暗划线,由光电发射和接收装置读取,以获得组合成A、B、C和D的四组正弦波信号,每组正弦波的相位差为90度(相对于一个周期为360度)。C和D信号被反转并叠加在A和B相位上,以增强稳定...
  • 抗浪涌电阻类型系列以及编码规则 抗浪涌芯片电阻又称:耐冲击抗浪涌脉冲电阻器,抗浪涌电阻,抗突波电阻,耐突波电阻,耐浪涌电阻,体积小,重量轻,阻值范围宽,性能稳定,可靠性高,高频特性优越,适应回流焊与波峰焊,装配成本低,并与自动装贴设...
  • 欧璐O-墙壁开关:简约设计与实用功能的完美结合 欧璐O-墙壁开关是一款结合了实用性和设计感的产品,特别适合现代家居使用。这款开关设计为一开多三孔单的设计模式,意味着一个开关可以控制多个电器的电源,不仅节省了安装空间,还极大地提升了使用的便捷性。其外观简...
  • Elprocus 的 4、5、6 波段电阻颜色代码计算器 众所周知,电阻器是一个基本元件,我们可以在任何电子电路中找到它。电阻器的电阻值取决于它所使用的应用类型。尽管当今市场上有先进的电阻测量设备,但电阻器的颜色代码系统总是使我们能够轻松读取和识别其电阻值。...
  • 色环电阻颜色代码 有许多不同类型的电阻器可用在电路中,以各种不同方式控制电流或产生电压降。但是为了做到这一点,实际的电阻器需要具有某种形式的“电阻”或“电阻”值。电阻的阻值范围从几欧姆(Ω)到数百万欧姆不等。显然,拥有每...
  • PT100热电阻温度与电阻值对照表(0°C基准0.385) 根据PT100热电阻的标准特性,其电阻值随温度变化而变化,通常基于0°C时电阻为100Ω作为参考。对于给定的温度系数α=0.385Ω/°C(这指的是每度变化的电阻增量),我们可以构建一个简化版的对照表来展示特定温度下对应的电阻值...
  • 逆变器空调AL故障代码详解与解决方法 在使用逆变器空调的过程中,用户可能会遇到各种故障代码,其中“AL”是一个常见的错误提示。这个代码可能表示不同的问题,因此需要根据具体情况进行分析和处理。下面是一些关于如何解读和解决“AL”故障代码的方法:1....
  • 低压电缆的绝缘电阻合格值是多少? 有关低压电缆的知识,低压电缆的绝缘电阻为多少算合格,与电缆的长度有没有关系,当电缆长度为500米时,或大于500米时,绝缘电阻值多少为合格,电工天下小编带大家来了解下。 低压电缆的绝缘电阻常温下(摄氏20度...
  • 高低压变压器的合格绝缘电阻是多少? 高低压变压器的合格绝缘电阻是多少?运行中的电力变压器绝缘电阻合格标准为:10KV及以下,绝缘值大于300兆欧姆;35KV等级,绝缘值大于400兆欧姆(环境温度为20摄氏度)。通过测量绝缘电阻,电力变压器可以有效地检测变压器...
  • 贴片电阻201标识代表的是200欧姆 贴片电阻的标识方法通常采用数字代码来表示其阻值,这种标识方式对于熟悉规则的人来说非常直观和方便。例如,“201”这样的标识,并不是直接表示201欧姆。实际上,贴片电阻上的“201”代表的是200欧姆。这里的编码规则是...
  • 电缆线芯对地或线芯之间绝缘电阻高于 电力电缆的常见故障判断方法电力电缆的常见故障判断方法型号规格: BV 10接地或短路故障、断线故障、断线并接地故障和闪络性故障等。  故障的判断方法|:确定电缆故障类型的方法是用绝缘电阻表在线路一端测...
  • 爱普瑞BRT-205L-T:高效实用的智能设备 爱普瑞BRT-205L-T是一款高效实用的智能设备。该产品以其卓越的性能和便捷的操作体验,受到了广大用户的青睐。首先,在设计上,爱普瑞BRT-205L-T采用了先进的技术理念,确保了其在同类产品中的领先地位。无论是外观设计还是内...
  • 精密电阻阻值对照表01Y是多大 标准阻值表E-24 J(±5%)Standard Resistance Table阻值 代码 阻值 代码 阻值 代码 阻值 代码 阻值 代码 阻值 代码 阻值 代码1.0 1R0 10 100 100 101 1.0K 102 10K 103 100K 104 1.0M 1051.1 1R1 11 110 110 111 1.1K 112 11K 113 110K 114 1.1M 1151.2 1R2 12 120 120 121 1.2K 122 1...
  • 铜的电阻温度系数约为0.004/°C 铜是一种常用的导电材料,因其良好的导电性能和相对较低的成本,在电气工程中被广泛应用。铜的电阻温度系数(temperature coefficient of resistance),是指在特定温度范围内,温度每变化1度时,其电阻值相对于基准温度(通常是2...
  • ESD静电抑制管的价格是多少?有没有便宜一些的替代品? ESD静电抑制管的价格因不同品牌和型号而异,一般在几元到几十元之间。替代品有瞬态电压抑制二极管(TVS)阵列,它们是由多个TVS晶粒或二极管采用不同的布局设计成具有特定功能的多路或单路ESD保护器件,主要应用于各类通...
  • PTTC聚鼎PT08V2DF-C产品特性与应用范围详解 在现代电子技术飞速发展的今天,PTTC聚鼎PT08V2DF-C作为一种高性能的电子元器件,在多个领域中发挥着重要作用。PTTC聚鼎PT08V2DF-C是一种具备高可靠性、高稳定性的保护器件,广泛应用于各种电子设备中,以确保电路的安全运行。...
  • TSS管与聚鼎PXXXX系列T管的应用与比较 在电子元件领域,TSS管和聚鼎PXXXX系列T管是两种常见的保护器件,它们在电路设计中扮演着重要的角色。TSS(Transient Voltage Suppression)管是一种瞬态电压抑制二极管,用于保护敏感电子设备免受电压浪涌损害。而聚鼎PXXXX系列T管...