首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

为什么我建议你用 if-else

程序员想必都经历过这样的场景:刚开始自己写的代码很简洁,逻辑清晰,函数精简,没有一个 if-else,可随着代码逻辑不断完善和业务的瞬息万变:比如需要对入参进行类型和值进行判断;这里要判断下对象是否为...落地到具体实现只能不停地加 if-else 来处理,渐渐地,代码变得越来越庞大,函数越来越长,文件行数也迅速突破上千行,维护难度也越来越大,到后期基本达到一种难以维护的状态。...函数的好处是屏蔽内部实现,缩短 if-else 分支的代码。代码结构和逻辑上清晰,能一下看出来每一个条件内做的功能。...将这个表达式的每个分支放进一个子类内的覆写函数中,然后将原始函数声明为抽象函数。...针对状态处理型重构方法有两种:一种是把不同状态的操作封装成函数,简短 if-else 内代码行数;另一种是利用面向对象多态特性直接干掉了条件判断。

1.9K20
您找到你想要的搜索结果了吗?
是的
没有找到

tf.session.run()单函数运行和多函数运行区别

problem introduction sess.run([a,b]) # (1)同时运行a,b两个函数 sess.run(a) sess.run(b) # (2)运行完a函数后再运行b函数 这两个语句初看时没有任何区别...,但是如果 a,b 函数恰好是读取 example_batch 和 label_batch 这种需要使用到 数据批次输入输出函数时 例如(tf.train.shuffle_batch.tf.reader.read...). (1)式只会调用一次输入数据函数,则得到的 example_batch 和 label_batch 来自同一批次。...(2)式会单独调用两次输入数据函数,则得到的 example_batch 来自上一批次而 label_batch 来自下一批次。...example 来自第一个 batch,label 来自下一个 batch,而 num 来自第三个 batch.也就是说其实我们单独运行了三次文件输入的程序。

93030

Docker-compose 运行MySQL 连接

Docker-compose 运行MySQL 连接上 千寻简笔记介绍千寻简笔记已开源,Gitee与GitHub搜索chihiro-notes,包含笔记源文件.md,以及PDF版本方便阅读,且是用了精美主题...@toc简介在服务器部署 mysql 遇到了一个问题,起初根据文档去启动 MySQL,正常启动后发现,远程连接上,起初怀疑是服务器防护墙没关,后来我把服务器防火墙关闭以及放行云服务器厂商的防火墙,还是连接上...my.cnf' is ignored.这个错误是MySQL创建容器没有使用上我们的配置文件my.conf,my.conf其中指定的 MySQL 的端口,但是由于没有加载成功,所以映射端口不一致导致远程连接上数据库...、MySQL 连接上、MySQL8、docker-compose、docker实现步骤1 重新分配权限我们知道了问题出在哪里就比较好解决了。...将配置文件设置可读的权限,重启 docker-compose 容器chmod go-w /etc/my.cnf使用 down 命令停止运行的容器,并且会删除已停止的容器以及已创建的所有网络docker-compose

49200

Map+函数式接口,“更完美” 的解决 if-else的问题

(别看着上面case里面只有一句话,但实际情况是有很多行的) 而且由于 整个 if-else的代码有很多行,也不方便修改,可维护性低。...以下是策略模式的具体结构 策略模式在业务逻辑分派的时候还是if-else,只是说比第一种思路的if-else 更好维护一点。...有点麻烦了 没法俯视整个分派的业务逻辑 Map+函数式接口 用上了Java8的新特性lambda表达式 判断条件放在key中 对应的业务逻辑放在value中 这样子写的好处是非常直观,能直接看到判断条件对应的业务逻辑...resourceName){ return queryGrantTypeService.getResult(resourceName); } } 用Map+函数式接口也有弊端...Map+函数式接口通过Map.get(key)来代替 if-else的业务分派,能够避免策略模式带来的类增多、难以俯视整个业务逻辑的问题。

11310

python中id函数运行方式

print id(x) #15760464 用is判断两个对象是否相等时,依据就是这个id值 is与==的区别就是,is是内存中的比较,而==是值的比较 知识点扩展: Python id() 函数...描述 id() 函数返回对象的唯一标识符,标识符是一个整数。...CPython 中 id() 函数用于获取对象的内存地址。 语法 id 语法: id([object]) 参数说明: object — 对象。 返回值 返回对象的内存地址。...以下实例展示了 id 的使用方法: a = 'runoob' id(a) 4531887632 b = 1 id(b) 140588731085608 到此这篇关于python中id函数运行方式的文章就介绍到这了...,更多相关python的id函数如何运行内容请搜索ZaLou.Cn以前的文章或继续浏览下面的相关文章希望大家以后多多支持ZaLou.Cn!

96031

还在用策略模式解决 if-else?Map+函数式接口方法才是YYDS!

最后捋一捋本文讲了什么 ---- 本文介绍策略模式的具体应用以及Map+函数式接口如何 “更完美” 的解决 if-else的问题。...文章目录 需求 策略模式 Map+函数式接口 最后捋一捋本文讲了什么 “推荐下自己做的 Spring Boot 的实战项目: https://github.com/YunaiV/ruoyi-vue-pro...(别看着上面case里面只有一句话,但实际情况是有很多行的) 而且由于 整个 if-else的代码有很多行,也不方便修改,可维护性低。...以下是策略模式的具体结构 策略模式在业务逻辑分派的时候还是if-else,只是说比第一种思路的if-else 更好维护一点。...Map+函数式接口通过Map.get(key)来代替 if-else的业务分派,能够避免策略模式带来的类增多、难以俯视整个业务逻辑的问题。

58231

python让函数返回结果的方法

函数返回值简介 1、简单介绍print和return的区别,print仅仅是打印在控制台,而return则是将return后面的部分作为返回值:作为函数的输出,可以用变量接走,继续使用该返回值做其它事。...2、函数需要先定义后调用,函数体中return语句的结果就是返回值。如果一个函数没有reutrn语句,其实它有一个隐含的return语句,返回值是None,类型也是’NoneType’。...return决定 return语句的作用: 结束函数调用、返回值 指定返回值与隐含返回值: 1、函数体中return语句有指定返回值时返回的就是其值 2、函数体中没有return语句时,函数运行结束会隐含返回一个...def showplus(x): print(x) return x + 1 num = showplus(6) add = num + 2 print(add) #上面函数的输出结果为:6、9 实例扩展...分别存储名和姓,每当需要显示姓名时都调用这个函数

6.2K41
领券