博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
[置顶] 怎么对待重复的代码
阅读量:4506 次
发布时间:2019-06-08

本文共 1337 字,大约阅读时间需要 4 分钟。

很多程序员喜欢copy,有点经验之后,可能会鄙视这样的做法。

在实际的项目中,我喜欢把多次出现的代码通过一个函数,一个模板模式,一个基类封装起来。

但是,在写测试程序的时候却习惯拷贝。

来一段比较挫的代码:

 

int main(){	int i = 0;	/// future	QCLibrary *lib_future;	lib_future = new QCLibrary(".", "lib_future");	lib_future->Load();						   	MDFUNC future_func = (MDFUNC)lib_future->Resolve("GetStr");	//CTPMD* future_interface = (CTPMD*)future_func();	future_func();	//future_interface->Init();	/// stock	QCLibrary *lib_stock;	lib_stock = new QCLibrary(".", "lib_stock");	lib_stock->Load();	MDFUNC stock_func = (MDFUNC)lib_future->Resolve("GetStr");	//CZQMD* stock_interface = (CZQMD*)stock_func();	stock_func();	//stock_interface->Init();	cin >> i;	return 0;}

发现没有我的第二段代码是拷贝的。还有,发现没?lib_future我没有改为lib_stock.

 

来一段好点的代码

 

typedef void (*MDFUNC)();QCLibrary *lib = NULL;MDFUNC func = NULL;void globle_func(){	lib->Load();						   	func = (MDFUNC)lib->Resolve("GetStr");	func();}int main(){	int i = 0;	// md_future	lib = new QCLibrary(".", "lib_md_future");	globle_func();		// md_stock	lib = new QCLibrary(".", "lib_md_stock");	globle_func();	// trade_future	lib = new QCLibrary(".", "lib_trade_future");	globle_func();	// trade_stock	lib = new QCLibrary(".", "lib_trade_stock");	globle_func();	cin >> i;	return 0;}

代码很少,看着舒服,而且,不会出错。

 

做事情应该言行一致,坚信一个理论那么就要在实践中实践这个理论。否则,永远不知道这个理论原来还可以用在那么多的场景下。

 

转载于:https://www.cnblogs.com/james1207/p/3333745.html

你可能感兴趣的文章
java:环境变量设置
查看>>
Servlet的学习之Response响应对象(3)
查看>>
基础知识回顾——上下文管理器
查看>>
ARM(RISC)和x86(CISC)的技术差异
查看>>
第3章 对象基础
查看>>
文件压缩与解压缩
查看>>
android 搜索自动匹配关键字并且标红
查看>>
Android ViewPager使用详解
查看>>
python爬虫之scrapy的pipeline的使用
查看>>
mysql 1366错误
查看>>
mfc 导出数据保存成excel和txt格式
查看>>
让Android中的webview支持页面中的文件上传
查看>>
UML基础
查看>>
Oracle 从Dump 文件里提取 DDL 语句 方法说明
查看>>
实现winfrom进度条及进度信息提示
查看>>
关于Spring.Net的singleton和singlecall的讨论
查看>>
vue项目目录结构
查看>>
程序员自学路上的一些感悟
查看>>
使用x64dbg分析微信聊天函数并实现发信息
查看>>
robotframework-selenium2library各个版本
查看>>