表驱动的简单应用
来源:互联网 发布:张艺兴sheep知乎 编辑:程序博客网 时间:2024/06/05 02:54
上周顿哥给我们将了表驱动法的应用,刚好项目中也用上了,在这里对它的最简单的应用小结下。
记得当时顿哥给我们举了个最简单的实例,就是写一个方法,通过传入月份来获取传入月份的天数(二月算28天)。
当时我的想法是用一个Switch case语句来实现。脑袋里还没有表的概念。下面举出粗略的实现代码。
采用逻辑语句(switch 或 if else)实现如:
public int getDays(int month){int days = 0;switch (month){case 2:days = 28;break;case 4:case 6:case 9:case 11:days = 30;break;default:days = 31;break;}return days;}
若采用表来实现,具体如:
public final int[] Days ={ 0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 };public int getDays(int month){return Days[month];}
这样实现的优缺点是什么,如何去评价一段代码的好坏,我现在的理解有三方面:
第一点:代码易读性,尽量让代码逻辑清晰明了。
第二点:代码可维护性和可拓展性。就像安哥所说,把可能需要修改的地方放在一起尽量放在一起,
便于后期修改和维护。
第三点:高内聚,低耦合,代码块功能尽量单一,可移植性要强。
按照如上三点来分析上面两种实现方式,
就易读性来说,由于这只是最简单的应用,代码没什么逻辑。反而感觉用Switch更加直观。
但就可维护性和可拓展性来说,显然用数组来实现更易拓展,和维护。
只需要控制好数组的下标对应的值,当然在使用数组时,一定要注意越界的问题。
就可移植性来说,这也没什么可比性,因为两种一般只用于特定环境,
不过这两种思路的移植性需要好好吸收下。
在我们项目中用表驱动法来取代Switch语句功能,大大简化代码,同时又便于后期维护,修改和拓展。
记录下刚接触表驱动法的一点收获和心得。
- 表驱动的简单应用
- 简单的应用调用驱动
- 通过JDBC驱动MySQL的简单应用
- R2104驱动电路的简单应用
- ROS下Kinect2的驱动安装及简单应用
- 一个简单的linux设备驱动和应用测试代码
- 表驱动法应用的难点
- 表驱动法应用的难点
- 表驱动法应用的难点
- 简单的Framebuffer驱动
- 简单的流驱动
- 简单的LED驱动
- 简单的流驱动
- 简单的Linux驱动
- 简单的linux 驱动
- 简单的字符驱动
- 编写简单的驱动
- 驱动与应用层简单消息通信
- 从今天起写博客
- 01背包(滚动数组)
- Windows 7电源管理对笔记本温度的影响
- 应用中嵌入网页控件控制
- NAT图解
- 表驱动的简单应用
- iOS开发之多媒体播放
- qt控件的使用
- Servlet实现文件下载以及遇到的问题
- Liunx java-eclipse下C++的so库的调用(上)
- Windows8 Metro快捷键大全
- c语言函数可变参数列表
- sgu 160 Magic Multiplying Machine
- 单例模式——php单例模式的运用,用单例模式设计实现多例