愿愿对vc++面向对象编程的一些理解(随笔)

想写这个文章,是觉得自己需要有些东西对这个社会的一些回报。并无它意。


首先,面向对象编程有两个主要问题,一个是技术层面的,一个是思想层面的。


技术层面要解决具体的代码如何高效实现,可复用,易于维护。


技术层面就像一线的工人,他需要关注怎么操作,如何实现,这一点上需要特别注意的是,利用指针提高效率,利用临时对象,智能指针,使得代码零内存泄漏,最高效的实现代码的功能。


思想层面要解决如何使得代码有机的统一起来,代码之间如何配合协调。


思想层面就像国家主席,他需要关注的是,哪个人对应与哪个部门,处理好各个部门领导之间的关系,和部门领导的任命,以及部门的创建等等。


思想层面,与技术层面,有时是相互交叉的,思想由具体的技术凝结提炼而来,具体的技术又需要思想的指导以达到整体效益的最大化。

其次,代码的技术与思想的体现在对象的确定上,俗话就是代码的框架,不是有许多架构师吗?

凡是概念上的东西,都可以作为对象或者说目标Object。如果我们不顾已经有的代码,已经有的编程环境,我们可以肆无忌惮的设置对象。但一方面,因为人与环境的关系已经有了定势,所以我们需要充分顺应,人的习惯,与世界的规律。另一方面,我们的程序员前辈,已经编写了大量的代码,想在已经有的代码海洋中徜徉,就需要学会利用已经有的代码,而不是自己再去过原始社会的工作和生活。

再次,对象的确立,要有层次,就像网络通信方面的协议一样,每个层次互相易于配合,而各自又相对独立和自成一隅。

还是刚才的例子,国家主席是不需要知道具体这个事情是怎么做的,卫生部的事情交给卫生部长去做,上层只需要一个想法,具体的事情是由下层的人做的,具体是翻了多少山,走了多少水,是不需要上层知道的,上层只需要收到一个SUCCESS,或者FAIL。这就要求确定的对象能够提供它能实现的功能接口,把复杂性限制在它的内部,上层只能让某个部下去完成它分内的事情(社会上的能者多劳实在是混账,它无限的要求部下完成不可能轻易完成的任务,社会的层次在现在已经有些乱了)。而同一层次,需要不同的分割部门,把需要协商合作的功能,合理的分割,把代码的复杂度降低。

最后,不想再写了,说多了,好像愿愿有多少话语权似的。作为曾经的vc++爱好者,这里强调的是,要充分利用临时对象的自释放机制,利用智能指针,把内存泄漏完全规避。

猜你喜欢

转载自blog.csdn.net/tom_xuzg/article/details/80386917
今日推荐