场景:当我们收到一些数据并需要处理时,由于它们来自不同的渠道(例如腾讯,头条),因此不同的渠道需要不同的处理方法。让我们编写一个简单的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
邮箱: tao@jepsun.com
产品经理: 陆经理
QQ: 2065372476
地址: 深圳市宝安区翻身路富源大厦1栋7楼

更多资讯
获取最新公司新闻和行业资料。
- ALPS编码器在现代自动化系统中的关键作用 ALPS编码器在现代自动化系统中的关键作用随着智能制造与工业4.0的发展,高精度位置反馈成为自动化系统的核心需求。ALPS编码器凭借其卓越的稳定性与精准度,在各类自动化设备中扮演着“眼睛”与“大脑”的角色。1. 提升运动...
- ALPS编码器在现代工程应用中的优势与特点 ALPS编码器作为一种高精度、高性能的旋转编码器,在现代工程领域中扮演着重要的角色。其优势和特点主要体现在以下几个方面:1. 高精度与可靠性:ALPS编码器以其卓越的精度和可靠性著称,能够在各种恶劣的工作环境下保持稳...
- ALPS编码器在现代工程应用中的重要性与优势 ALPS编码器作为一种高性能的旋转编码器,在现代工程领域中扮演着极其重要的角色。它以其卓越的精度、稳定性和可靠性而著称,广泛应用于各种自动化设备和精密控制系统中。ALPS编码器能够提供精确的角度位置反馈,这对于需...
- 编码器工作原理 编码器是将信号或数据(例如比特流)编译并转换为可用于存储、通信和传输的信号形式的设备。它可以将角位移或线位移转换成电信号。前者称为码盘,后者称为码尺。如果按照读取方式来划分,编码器可分为接触式和非接触...
- 选择编码器的工作原理 中心轴为中心的光电码盘上有一条环形和暗划线,由光电发射和接收装置读取,以获得组合成A、B、C和D的四组正弦波信号,每组正弦波的相位差为90度(相对于一个周期为360度)。C和D信号被反转并叠加在A和B相位上,以增强稳定...
- 可编程晶振与传统晶振对比:为何更受现代设计青睐? 可编程晶振与传统晶振对比:为何更受现代设计青睐?随着电子产品向小型化、智能化、多功能化发展,传统的固定频率晶振已难以满足多样化需求。相比之下,可编程晶振凭借其高度灵活性和集成优势,正在成为新一代电子系...
- 抗浪涌电阻类型系列以及编码规则 抗浪涌芯片电阻又称:耐冲击抗浪涌脉冲电阻器,抗浪涌电阻,抗突波电阻,耐突波电阻,耐浪涌电阻,体积小,重量轻,阻值范围宽,性能稳定,可靠性高,高频特性优越,适应回流焊与波峰焊,装配成本低,并与自动装贴设...
- ALPS编码器原理详解:从基础结构到实际应用 ALPS编码器原理详解:从基础结构到实际应用ALPS编码器是一种广泛应用于工业自动化、机器人控制和精密运动系统中的高精度位置检测装置。其核心原理基于光学或磁性信号的周期性变化,通过读取编码器输出的脉冲信号来确定旋...
- ALPS编码器在工业自动化中的应用与PLC通信实现详解 ALPS编码器在工业自动化中的核心作用ALPS编码器作为高精度位置检测装置,广泛应用于数控机床、机器人、传送带系统等工业自动化设备中。其具备高分辨率、抗干扰能力强、响应速度快等特点,能够实时反馈机械部件的位置与运...
- 如何优化ALPS编码器与PLC通信的稳定性与响应速度 影响ALPS编码器与PLC通信稳定性的关键因素尽管ALPS编码器性能优异,但在实际应用中,通信不稳定或响应延迟可能由多种因素导致。以下是主要影响因素及其解决方案:1. 电磁干扰(EMI)工业环境中存在大量变频器、电机等强电磁...
- 深入解读:如何正确申报WAN1608H245H04的HS编码69.00及合规出口策略 WAN1608H245H04 的精准归类:从型号到HS编码的逻辑转换在国际贸易中,准确申报产品HS编码是企业合规运营的关键环节。对于型号为 WAN1608H245H04 的多层陶瓷电容器,其核心属性为“无机非金属材料制成的电子元器件”,因此应归入H...
- WAN1608H245H04 系列陶瓷制品详解:性能优势与HS编码69.00应用解析 WAN1608H245H04 陶瓷元件核心参数与技术特性WAN1608H245H04 是一款高性能的片式多层陶瓷电容器(MLCC),广泛应用于消费电子、通信设备及工业控制领域。其型号中的“1608”表示封装尺寸为16mm×8mm,属于标准小型化元件;“H245”代表...
- 如何高效集成ALPS编码器与PLC系统?关键步骤与注意事项 高效集成ALPS编码器与PLC系统的完整指南随着智能制造的发展,设备的自动化程度不断提高,对位置反馈的精度与稳定性要求也日益提升。将ALPS编码器与PLC系统高效集成,是实现精密运动控制的重要基础。本文将从选型、接线、配...
- 欧璐O-墙壁开关:简约设计与实用功能的完美结合 欧璐O-墙壁开关是一款结合了实用性和设计感的产品,特别适合现代家居使用。这款开关设计为一开多三孔单的设计模式,意味着一个开关可以控制多个电器的电源,不仅节省了安装空间,还极大地提升了使用的便捷性。其外观简...
- ALPS编码器与PLC通信技术详解:实现高精度位置控制的实践方案 ALPS编码器与PLC通信技术详解在现代自动化控制系统中,位置反馈是实现精准控制的关键环节。ALPS编码器作为高精度、高可靠性的旋转或线性位移传感器,广泛应用于工业机器人、数控机床、传送带等设备中。而可编程逻辑控制器...
- TSS管与聚鼎PXXXX T/S电感的性能对比及应用解析 TSS管与聚鼎PXXXX T/S电感的核心技术优势在现代电子设备中,TSS管(Transient Suppressor Semiconductor)与聚鼎品牌PXXXX系列电感(包括T型与S型)因其卓越的瞬态抑制能力和高可靠性,广泛应用于电源管理、通信设备和工业控制领域。以下...
- Elprocus 的 4、5、6 波段电阻颜色代码计算器 众所周知,电阻器是一个基本元件,我们可以在任何电子电路中找到它。电阻器的电阻值取决于它所使用的应用类型。尽管当今市场上有先进的电阻测量设备,但电阻器的颜色代码系统总是使我们能够轻松读取和识别其电阻值。...
- 色环电阻颜色代码 有许多不同类型的电阻器可用在电路中,以各种不同方式控制电流或产生电压降。但是为了做到这一点,实际的电阻器需要具有某种形式的“电阻”或“电阻”值。电阻的阻值范围从几欧姆(Ω)到数百万欧姆不等。显然,拥有每...
- 低压电缆的绝缘电阻合格值是多少? 有关低压电缆的知识,低压电缆的绝缘电阻为多少算合格,与电缆的长度有没有关系,当电缆长度为500米时,或大于500米时,绝缘电阻值多少为合格,电工天下小编带大家来了解下。 低压电缆的绝缘电阻常温下(摄氏20度...
- 聚鼎PXXXX T与S电感对比:性能差异与工程选型策略 聚鼎PXXXX T vs S电感:全面性能对比与工程实践指南面对日益复杂的电子系统设计需求,如何在“聚鼎PXXXX T”与“聚鼎PXXXX S”两款电感之间做出最优选择?本文从结构、性能、适用场景三个维度展开深度对比,并提供实用的工程选...