反for-if编程模式
来源:互联网 发布:知网社会与经济数据库 编辑:程序博客网 时间:2024/05/20 09:23
这些年来,我看到过大量的反编程模式。我感觉应该向大家分享一些。
今天,我要介绍的是被我称作反for-if编程模式的反模式「如果感兴趣可以查看一下这篇文章:for 循环为何可恨?」,也就是人们所说的”我们卖给你整个座位,但你需要的只是一个边。”
这是一个特殊的反for-case模式,其中所有的情况中只有一次会是null。
- for (int i = 0; i < 100; i++) {
- if (i == 42) { do_something(i); }
- }
这种情况可以简单的写成
- do_something(42);
这个反for-if模式可以表现成各种各样的形式。比如:
- foreach (string filename in Directory.GetFiles("."))
- {
- if (filename.Equals("desktop.ini", StringComparison.OrdinalIgnoreCase))
- {
- return new StreamReader(filename);
- }
- }
它是在一个目录里遍历查找一个指定文件,如果找到了,就返回文件的数据流。这段代码的一种不是那么折腾的写法是
- if (File.Exists("desktop.ini"))
- {
- return new StreamReader("desktop.ini");
- }
请注意,两个版本的代码片段具有相同的竞争条件:如果这个desktop.ini本来是存在的,但在你创建StreamReader之前被删掉了, 你就会得到一个FileNotFoundException错误。
再举一个例子:
- foreach (object o in hashtable.Keys)
- {
- if (o == "target") return hashtable["target"];
- }
等同于
- return hashtable["target"];
我猜测这些家伙不喜欢在图书馆里通过书名找一本书,因为他们的做法是如此的繁琐:
他们来到图书馆里员面前说,“把你所有的书都给我,”然后他们拿着装满了上千本书的篮子,坐到墙角里自言自语:
“不是,这本书的书名不对”,
“不是,这本也不是”,
“标题还是不对。”
“这本书呢?”
”不是,也不是这本。“
”老天,我要这样一本一本翻到什么时候…“
- 反for-if编程模式
- Python编程中的反模式
- Python编程中的反模式
- Python编程(反模式)
- linux shell编程(三) if 和 for
- 简单的编程 if while for,留着自己备用
- Linux Shell编程之 for循环语句 if条件语句
- shell脚本编程之for语句、if语句使用介绍
- 反模式
- 反模式
- 反模式
- 反模式
- 编程时避免使用 if 语句的五种模式
- 编程时避免使用 if 语句的五种模式
- 编程时避免使用 if 语句的五种模式
- 编程时避免使用 if 语句的五种模式
- 编程时避免使用 if 语句的五种模式
- 汇编反FOR 循环
- iOS判断设备类型,并设置背景色
- 函数要多小才够好——谈小函数之道
- DirectX11 入门教程 36讲
- jaxb 关于java转xml文章
- 为什么 jdk 中把 String 类设计成 final
- 反for-if编程模式
- 如何在Eclipse中配置Tomcat(免安装版)
- hdu Free DIY Tour (旅行商问题)
- 我们为什么要使用正版软件?
- HDU1856(More is better)—并查集+树
- suse11下开通telnet服务
- 使用WinDBG调试内存泄露的问题
- 大白话解析模拟退火算法
- [開發記錄] 函式庫調用 - GPIO控制 之一