DIY主题讨论5:条件控制

如何解决if-else多层嵌套的问题?

  1. 使用策略模式,if-else中执行的逻辑可以理解为策略,可以将策略方法抽离成接口与实现,然后通过工厂类创建对象实现策略逻辑,这样可以是解决逻辑比较清晰,后期维护增加修改策略也吧比较方便。
  2. 使用状态模式,if-else的设计思想是当什么条件下做什么事情,而状态模式则是将不同的操作与不同的状态值对应,通过设置状态值来控制逻辑的执行。此处还可以拓展使用二进制位运算,用二进制的每一位代表一种操作,节约空间提升效率。
  3. 使用多态通过传递不同的参数类型去掉if-else
  4. 接口分层,根据职责内聚,拆分方法与层次调用减少if-else层级,控制嵌套深度。
  5. 卫语句,本质也是把多层if-else抽离成带有含义的语句,一方面减少层次,另一方面是判断逻辑一目了然。
  6. 解决逻辑:理清每个if的判断条件,执行逻辑拆分(拆分成不同策略或者不同状态对应的执行方法)。(降嵌套层次——>消嵌套层析,难理解——>易理解)

switch有哪些奇葩的脾气?

  1. case后面必须是常量,case如果仅选择一条结果,则需要与break配合使用。
  2. 最后用default 关键字定义默认方法。
  3. switch比较字符串实际上是比较字符串的hashcode,对于其他类型可考虑用hashcode进行switch分支判断。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值