当前位置:C++技术网 > 资讯 > 面向过程转面向对象方式——工具类

面向过程转面向对象方式——工具类

更新时间:2018-12-14 10:54:48浏览次数:1+次

    我发现很多同事都是用面向过程的思想写程序,看起来是有封装,实际上打开函数一看,都是面向过程的。我之前也是这样子写代码的,知道需求以后就立刻开始写代码,连实现步骤的没能列出来,直接写如:先得到数据->过滤数据->处理数据1->处理数据2->处理结果输出。运行调试得到结果,开开心心地点提交测试通过,以为自己效率奇高。后来发现需要处理数据3,代码就开始乱了,维护开始举步维艰。这就是很多初级程序员所犯的错:总是用过程式的伪面向对象。


以下就是我的一个用于转换面向过程到面向对象方式的方法。

思考以下问题
1、明确输出
a)处理数据以后能得到什么?
b)处理数据中途产生数据是否应该存放到类里面?
c)处理后应该怎么获取结果?是用run(){return} 还是run();get();get();
    通过整理输出以后,我们就知道需要什么输入数据配合才能完成整个过程

2、明确输入
a)至少需要哪些数据才能开始运行,开始处理数据?
    通常可以这么做Set();set();run();
b)那些必要数据的变动比较大吗,很可能更变吗?
    通常可以这么做run(arg1,arg2);作为每次运行的设置对象
c)怎么获取这些数据的方法通常需要和这个类解耦。怎么获取数据它本身很可能就是一个类

3、明确可选配置项
a)哪些数据是可以有默认值的?
b)哪些是配置以后就很少改动的?
c)那些全局变量通常都是配置项。
    配置项通常都用set() 或者init() 这些函数进行配置

4、解耦采用回调\委托
a)什么方法和这个工具的相关性很少,应该去解耦
b)哪些中途产生的数据,需要让别人处理?需要用回调
c)做了什么东西需要通知别人?需要用委托\回调

5、回头看看类里面有多少方法数据和类本身没有多大关系,需要再解耦

    通过以上处理,工具类和其他的类耦合性就很少了,而且还可以通过各种的输入,配置来控制输出结果,灵活性可以大大提高。