`

从类似功能的代码中找底层共通的方法

 
阅读更多

 从类似功能的代码中找底层共通的方法:
 
 当我们要实现一个功能,而这个功能,已经实现了,但是由于业务条件的限制,
 我们无法使用这个方法,通常情况下就是把方法写的通用,然而这个方法非常
 复杂,牵扯的条件业务逻辑非常之多,让我们一看之下很难进行修改。
 
 通常情况下,我们看到某处实现了某个功能,而这个顶层的方法 看似 完成了
 一个功能,其实,这样的方法通常都是 业务逻辑中调用功能的 方法。
 
 比如,要完成导入功能,要完成复制粘贴功能,都要修改某个单元格的内容。
 而这个 导入 方法 粘贴  方法,看似完成了某个功能,但是其内部调用的是
 底层的一个 设置单元格内容的方法。
 
 而当我们也要完成另一个业务逻辑下的 导入 方法,直接调用现有的 导入方法
 似乎达不到我们预期的结果,而修改这个方法又困难重重,这时怎么办呢、我们
 就要跟踪代码,看他导入业务逻辑之外的方法,其中肯定有逻辑 有 验证,但最
 终肯定是要改变单元格的内容,所以我们就跟踪到底层看它调用的哪个“共有的
 改变单元格内容”的方法。因为,可能很多地方都要改变单元格内容,所以“改变
 单元格内容”的这个方法应该是一个“共有的方法”,只有这样才可以供外部调用。
 如果这个方法不是共有的,我们就在往底层找,看是否它又调用了其它的方法,
 一直找,直到我们找到一个“公共的功能性方法”以供我们使用,去完成我们现有
 的任务。
 

如果我们始终找不到一个共有的方法供我们使用,这时我们就要对原有的代码
 进行解耦,将原有的 业务逻辑 方法 与 功能性 方法 分开,切记不要自己写
 功能性的方法,要差分,差到两方面的业务逻辑都能用这个方法。直到完成现
 在的功能。(如何利用现有的代码来完成相似的功能,参见 《不要重新制作轮子》)
 
 找到这个方法后,再看我们当前所属的业务逻辑是否可以直接调用这个方法,一般
 功能性的方法,都是共有的,可以直接访问的。

分享到:
评论

相关推荐

    C#调用C++底层代码

    从功能的角度来看,WCF完全可以看作是ASMX,.Net Remoting,Enterprise Service,WebService,MSMQ等技术的并集。 WPF是Windows Presentation Foundation,微软新发布的Vista操作系统的三大核心开发库之一,其主要...

    ebox是类似于arduino的一套固件,底层基于rtthread和hal库,简化stm32编程+源代码+文档说明

    3.快速实现底层驱动代码,减少STM32开发人员编写、调试器件驱动的工作量,提高驱动的重复利用率。 # 支持芯片 1、STM32F0系列 2、STM32F1系列 3、STM32F4系列 3、STM32L4系列 # 如何编译 本项目使用MDK 5编译 #...

    JAVA上百实例源码以及开源项目源代码

    在有状态SessionBean中,用累加器,以对话状态存储起来,创建EJB对象,并将当前的计数器初始化,调用每一个EJB对象的count()方法,保证Bean正常被激活和钝化,EJB对象是用完毕,从内存中清除…… Java Socket 聊天...

    vc++ 应用源码包_6

    代码里用了备份dll的方法,因此在自定义的函数中可以直接调用在内存中备份的dll代码,而不需要再把函数头部改来改去。 IOCP反弹远控客户端模型,外加上线服务端,全部代码注释! 如题。这个是IOCP远程控制软件的...

    vc++ 应用源码包_5

    代码里用了备份dll的方法,因此在自定义的函数中可以直接调用在内存中备份的dll代码,而不需要再把函数头部改来改去。 IOCP反弹远控客户端模型,外加上线服务端,全部代码注释! 如题。这个是IOCP远程控制软件的...

    Reversing:逆向工程揭密

    后来,一霎那间我破除了某个思维障碍,我发现自己迅速地“驰骋”于无正式文献记录的机器码中,快速地破译了代码的涵义并得到我想要的有关代码功能和用途的答案。这时候,我逐渐明白这是一种威力强大的技术,因为这...

    vc++ 开发实例源码包

    代码里用了备份dll的方法,因此在自定义的函数中可以直接调用在内存中备份的dll代码,而不需要再把函数头部改来改去。 IOCP反弹远控客户端模型,外加上线服务端,全部代码注释! 如题。这个是IOCP远程控制软件的...

    vc++ 应用源码包_1

    代码里用了备份dll的方法,因此在自定义的函数中可以直接调用在内存中备份的dll代码,而不需要再把函数头部改来改去。 IOCP反弹远控客户端模型,外加上线服务端,全部代码注释! 如题。这个是IOCP远程控制软件的...

    vc++ 应用源码包_2

    代码里用了备份dll的方法,因此在自定义的函数中可以直接调用在内存中备份的dll代码,而不需要再把函数头部改来改去。 IOCP反弹远控客户端模型,外加上线服务端,全部代码注释! 如题。这个是IOCP远程控制软件的...

    vc++ 应用源码包_3

    代码里用了备份dll的方法,因此在自定义的函数中可以直接调用在内存中备份的dll代码,而不需要再把函数头部改来改去。 IOCP反弹远控客户端模型,外加上线服务端,全部代码注释! 如题。这个是IOCP远程控制软件的...

    嵌入式系统详细文档

    这种方法不仅可以开发数据采集程序,还可以编写硬件设备的底层驱动,功能非常强大。但是这种方式对开发人员要求非常高,开发人员必须非常熟练的使用这些开发工具,还要对在不同平台下的驱动设计方法、技巧十分清楚。...

    C#微软培训资料

    18.2 在 C #代码中调用 C++和 VB 编写的组件 .240 18.3 版 本 控 制 .249 18.4 代 码 优 化 .252 18.5 小 结 .254 第五部分 附 录 .255 附录 A 关 键 字.255 附录 B 错 误 码.256 附录 C .Net 名字空间...

    机器人编程语言python-10大热门机器人编程语言,你掌握了哪种?.pdf

    Java从程序员"隐藏"底层的内存功能,这使得它⽐C更容易编程,但这也意 味着你对代码实际做的不太了解。像C#和MATLAB⼀样,Java是⼀种解释语⾔,这意味着它不会被编译成机器代码。相反,Java虚拟机 在运⾏时解释指令...

    工程硕士学位论文 基于Android+HTML5的移动Web项目高效开发探究

    市场上相应的检测平台诸如检测通、凡特网等皆为pc端检测网站,并且操作繁琐不够人性化,用户在实地使用中存在很多问题。昆山工业技术研究院着眼于为委托用户和质检机构搭建良好的沟通桥梁,免去目前市场业务中企业...

    基于卷积神经网络实现图像风格的迁移(含源码、数据集、说明文档)(深度学习实战).zip

    3、本资源作为“参考资料”如果需要实现其他功能,需要能看懂代码,并且热爱钻研,自行调试。 基于卷积神经网络实现图像风格的迁移(含源码、数据集、说明文档)(深度学习实战).zip # 图像风格迁移 ## 简介 - ...

    Java NIO原理和使用

    Java NIO出现不只是一个技术性能的提高,你会发现网络上到处在介绍它,因为它具有里程碑意义,从JDK1.4开始,Java开始提高性能相关的功能,从而使得Java在底层或者并行分布式计算等操作上已经可以和C或Perl等语言...

    新版Android开发教程.rar

    MSN 、雅虎通和 GTALK ;与谷歌日历同步;与 Android Market 联机;支持谷歌 “ 街景 ” 服务;包装盒内附 数据工具包。 更多信息 https://sites.google.com/a/android.com/opensource/release-features Android ...

    uboott移植实验手册及技术文档

    了解 U-Boot-1.3.1 的代码结构,掌握其移植方法。 【实验环境】 1、Ubuntu 7.0.4发行版 2、u-boot-1.3.1 3、FS2410平台 4、交叉编译器 arm-softfloat-linux-gnu-gcc-3.4.5 【实验步骤】 一、建立自己的平台...

Global site tag (gtag.js) - Google Analytics