从类似功能的代码中找底层共通的方法:
当我们要实现一个功能,而这个功能,已经实现了,但是由于业务条件的限制,
我们无法使用这个方法,通常情况下就是把方法写的通用,然而这个方法非常
复杂,牵扯的条件业务逻辑非常之多,让我们一看之下很难进行修改。
通常情况下,我们看到某处实现了某个功能,而这个顶层的方法 看似 完成了
一个功能,其实,这样的方法通常都是 业务逻辑中调用功能的 方法。
比如,要完成导入功能,要完成复制粘贴功能,都要修改某个单元格的内容。
而这个 导入 方法 粘贴 方法,看似完成了某个功能,但是其内部调用的是
底层的一个 设置单元格内容的方法。
而当我们也要完成另一个业务逻辑下的 导入 方法,直接调用现有的 导入方法
似乎达不到我们预期的结果,而修改这个方法又困难重重,这时怎么办呢、我们
就要跟踪代码,看他导入业务逻辑之外的方法,其中肯定有逻辑 有 验证,但最
终肯定是要改变单元格的内容,所以我们就跟踪到底层看它调用的哪个“共有的
改变单元格内容”的方法。因为,可能很多地方都要改变单元格内容,所以“改变
单元格内容”的这个方法应该是一个“共有的方法”,只有这样才可以供外部调用。
如果这个方法不是共有的,我们就在往底层找,看是否它又调用了其它的方法,
一直找,直到我们找到一个“公共的功能性方法”以供我们使用,去完成我们现有
的任务。
如果我们始终找不到一个共有的方法供我们使用,这时我们就要对原有的代码
进行解耦,将原有的 业务逻辑 方法 与 功能性 方法 分开,切记不要自己写
功能性的方法,要差分,差到两方面的业务逻辑都能用这个方法。直到完成现
在的功能。(如何利用现有的代码来完成相似的功能,参见 《不要重新制作轮子》)
找到这个方法后,再看我们当前所属的业务逻辑是否可以直接调用这个方法,一般
功能性的方法,都是共有的,可以直接访问的。
分享到:
相关推荐
从功能的角度来看,WCF完全可以看作是ASMX,.Net Remoting,Enterprise Service,WebService,MSMQ等技术的并集。 WPF是Windows Presentation Foundation,微软新发布的Vista操作系统的三大核心开发库之一,其主要...
3.快速实现底层驱动代码,减少STM32开发人员编写、调试器件驱动的工作量,提高驱动的重复利用率。 # 支持芯片 1、STM32F0系列 2、STM32F1系列 3、STM32F4系列 3、STM32L4系列 # 如何编译 本项目使用MDK 5编译 #...
在VB中,可以实现模拟鼠标键盘操作的功能,这在自动化测试、远程控制或者游戏辅助等领域有着广泛的应用。这个"VB模拟鼠标键盘操作源代码"的项目就是基于这种需求而设计的。 首先,我们要理解模拟鼠标键盘操作的基本...
在给定的“图象平滑处理源代码_graduallyzhz_Vc_”压缩包中,包含的源代码是用C语言实现的,用于实现图像的基本平滑去噪声和锐化功能。下面我们将详细探讨这些知识点。 1. **图像平滑处理**:图像平滑,也称为低通...
通过阅读和理解这些代码,我们可以学习如何在不支持Alpha通道的BMP格式中实现透明效果。 总结来说,"bmp简易透明贴图"是一种在不支持透明的BMP格式中模拟透明效果的技术。它通过自定义处理和特定颜色的标记,使得...
10. **实时操作系统**:在复杂系统中,可能需要使用实时操作系统(RTOS)来管理多任务,确保电机控制和其他功能的同步。 在名为“24直流电机调速 C语言 程序代码”的文件中,应包含实现了上述知识点的C源码。通过...
虽然Toxcore和Tuntox主要关注即时通讯,但它们的技术原理和去中心化思想与区块链技术有共通之处。区块链以其分布式、不可篡改的特性,已在金融、供应链、物联网等多个领域展现出巨大潜力。Tox协议的去中心化特性也...
代码逻辑结构清晰,与 `SDL_image` 类似,这意味着开发者可以快速理解和使用。源代码通常分为几个主要部分:音频解码器、混音器核心、音频设备管理和用户接口。每个部分都有明确的功能划分,易于阅读和维护。 4. *...
电热水器设计原理图和代码分析 在现代家庭中,电热水器是一种常见的家用电器,它通过电能转换为热能来加热水。本文将探讨电热水器的设计原理,并结合使用Protues软件绘制的原理图以及C语言编写的代码进行深入解析。...
通过阅读和理解这些代码,学习者可以深入理解NAT穿透的底层机制。 **应用场景** NAT穿透技术在多个领域有着广泛应用: - 在线游戏:确保玩家间的实时交互,减少延迟。 - P2P通信:如BitTorrent文件共享,Skype语音...
- `USER`: 用户自定义的源代码文件,包含实现波形识别功能的代码。 7. **实现过程**: - 配置STM32的ADC,设置采样率和通道。 - 通过中断或轮询方式收集ADC采样数据。 - 计算每个周期的RMS值。 - 分析RMS序列...
Java的`java.io.File`类提供了便利的方法,如`listFiles()`和`exists()`,用于实现这个功能。 6. **文件保护**:为了保护文件,可以设定访问权限或者使用文件锁。Java的`java.nio.file`包提供了丰富的文件操作接口...
### 在LabVIEW中驱动数据采集卡的三种方法 #### 引言 随着现代技术的发展,尤其是像美国国家仪器公司(National Instruments, NI)所提供的LabVIEW这样的软件开发平台日益成熟和商业化,越来越多的工程师和技术...
通过分析源代码,开发者可以了解到如何在Windows环境中构建类似的内核模式驱动,以及如何在用户模式下调用这些驱动,从而掌握底层硬件访问的技巧。 1. 驱动程序:这部分代码主要处理设备对象、IRP(I/O请求包)以及...
**扩展浏览器中的TCP通讯**:与UDP类似,JS在浏览器环境中也不能直接处理TCP连接。但通过WebSocket API,开发者可以在浏览器和服务器之间建立持久的TCP连接,实现双向全双工通信。WebSocket为浏览器应用程序提供了低...
尝试修改代码,例如增加新的功能(如群聊、私聊)、优化性能(如并发处理、内存管理)或增强安全性(如加密传输),这些都是提高技术能力的好方法。 六、Netty 的优势 1. 高性能:Netty 的异步事件驱动模型,使得它...
4. **类型系统**:VB.NET和C#都使用强类型,但VB.NET有自动类型推断(With "Option Infer"),而C#有var关键字实现类似功能。在转换过程中,需要注意这些差异,确保类型声明的正确性。 5. **异步编程**:VB.NET使用...
8. **跨平台兼容性**:虽然WannaPlayDIB主要面向Windows平台,但开发者也可以尝试通过移植代码或使用类似技术,使其在其他操作系统上运行,如Linux或macOS,这涉及到跨平台编程的知识。 总的来说,WannaPlayDIB实用...
这个工具的使用不仅限于个人,也适合那些想要搭建类似社区的网站管理员,他们可以快速构建起文件上传功能,而无需从零开始编写代码。对于学习和理解文件上传逻辑的开发者来说,也是一个很好的学习资源。