新春签到免费送会员,每天签到一次,送一天会员,活动截止时间不定,随时终止!机会不要错过哦!
首页  >   经验  >   面向过程转面向对象方式——工具类

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

ooklasd 2018-12-14 10:54:48 451
面向   对象  
简介我发现很多同事都是用面向过程的思想写程序,看起来是有封装,实际上打开函数一看,都是面向过程的。

    我发现很多同事都是用面向过程的思想写程序,看起来是有封装,实际上打开函数一看,都是面向过程的。我之前也是这样子写代码的,知道需求以后就立刻开始写代码,连实现步骤的没能列出来,直接写如:先得到数据->过滤数据->处理数据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、回头看看类里面有多少方法数据和类本身没有多大关系,需要再解耦

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

文章标题:面向过程转面向对象方式——工具类
文章地址:http://www.cjjjs.com/article/20181207151300
转载到个人博客,请在文末带上右侧内容(含超链接):本文转载自:面向过程转面向对象方式——工具类
收藏 0 点赞 0

相关阅读

  1. 面向过程转面向对象方式——工具类
  2. 关于父子对象相互赋值以及多态特性的分析:5 用父类指针接受子类对象的理解
  3. 关于父子对象相互赋值以及多态特性的分析:4 构建多态特性三要素的理解
  4. 关于父子对象相互赋值以及多态特性的分析:3 子类和父类对象相互转化的理解
  5. 关于父子对象相互赋值以及多态特性的分析:2 父类对象赋值给子类对象的理解
  6. 关于父子对象相互赋值以及多态特性的分析:1 子类对象赋值给父类对象的理解
  7. C++轻松实现对象序列化和反序列化
  8. 如何将C++对象导出到DLL,直接看DLL内部解析
  9. 在多线程中,如何安全地操作同一个对象指针呢
  10. C++函数对象的剖析及详细实例
分享到:
分享文章[面向过程转面向对象方式——工具类]到QQ空间
  • 大熊 2018-12-07 15:54:27

    这个问题我之前也是想过的,很多时候,我也就用类把工具组织在一起,而不是有机的组合在一起,为了便于管理工具函数集合。而有时候是要用类作为一个整体的,则需要有机的整合,不能是简单的集合。我觉得要分清楚集合工具和整体工作两个区别,集合工具使用类静态函数,整体工作则要利用类成员变量减少成员函数的参数以及协调工作流程。
    0回复

相关阅读