在C++中的进行重构

C++中的进行重构

 

 

 

最近在修改一个项目,C++的一个服务器端的程序。它用来连接两种终端一种是发起终端一种是被控终端。以前只支持一个发起终端,现在需要将其改成能够支持多个发起终端的情况,当看了程序之后,首先就打算先整理一下以有的代码。或者也能说得上是一种重构吧。

先说说这个程序:

主要有以下的三个类

CSrv

CSrvDlg

CSock

CStartSock CEndSock CSock的两个继承类,也就是主要的数据结构

CSrv主要是用来管理CStartSockCEndSock 以及用来管理显示情况的。

显示在CSrvDlg中进行,通过注入CSrv的一个对象来实现。

这一部分先放着,先来看看CSrvCSock的关系

原先的代码在CSrv 中使用了两个重要的队列

Pubic :

StartSockQueue m_Start;

EndSockQueue m_End;

而在CStartSock CEndSock中大量的使用了m_Start,m_End这两个队列。目的是在转发数据的时候能够找到是要发到哪里去的。不过原来的是通过直接调用m_Start,m_End来实现的。这样就出现了很多的重复的代码。

现在先打算修改了这部分,然后再去添加功能。

在《重构》这本书中提到了一个很重要的做法,就是一步一测试。我也是很有体会。因为刚开始,直接改了很多地方再测试,那样一次测试下来的错误都不知道在哪里。因为改的多了很难知道确切是哪里引入的。因此,强烈建议一步一测试。

于是,先在CSrv中创建了一个FindStartSock()的函数,其是个多态的函数。

然后再修改CStartSock中使用到m_Start的地方。

用同样的方法修改m_End

最后将m_Start,m_End改成private属性。

当然程序还有其他的地方需要重构,在此,就不一一说明了。

 

 

 

C++中重构和在java中的重构从原理上来说是一样的,都能够是程序更加的清晰。所以《重构》一书中的那些方法都能够应用到C++中,毕竟重构是思想。放之四海而皆准。不过在C++中重构由于使用头文件,所以可能会麻烦一点点。但是如果一个程序的框架不够好的话,那么再怎么重构的话,可能会是程序清晰,但是对将来的扩展的话恐怕是不会起到多大作用的。

想练练手,写写东西,希望通过书写的方式使自己能够有所提高。
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值