您的位置:首页 > 理论基础 > 计算机网络

从网络体系结构想到编程思想

2005-02-10 23:51 218 查看
因为网络课要考试了,所以最近在看网络课的书。不能不说网络的体系结构是一个伟大的办法。我认为网络体系结构中的层次模型是最关键的,这种分层的体系结构提供了高可靠性和开发上的便利性。在每一个层次中只调用它下层所提供的功能,每一层又在其下层及基础上封装了一定的功能,并且提供给上层调用,而下一层的内部实现对上层来说是透明的不可见的,是一个黑匣子,上层所能看见的就只是下层所提供的调用接口。每一层的实现只于其下层耦合,这样既保证了重用性,又保证了一定的独立性和封装性。这种层次的体系,极为利于开发和维护,这也为网络的安全和稳定提供了坚实的基础。

这种体系结构同样可以用于并且已经被用于软件开发中了,这是一种相当好的办法。我很欣赏这种做法,唯一的缺点就是,由于层次原因会造成整个系统效率的下降,不过效率下降的代价换来了高可靠性和开发的便利性,是值得的。编程中我认为最重要的不在于编码,而在于体系结构的设计,体系结构关系到了整个系统的可靠性和使用开发上的便利性,特别的对于较大的系统,一开始在架构设计上下功夫就显得尤为重要了。而编码则是在架构设计好后水到渠成的事情。

另外一种值得说得是面向对象的开发与设计方法。我一再认为,面向对象是一种设计的思想,而不在于具体用什么语言。因为我最爱的是C,所以经常被一些使用Java等面向对象语言的人所鄙视,当我在写一个C的底层函数库时,被人嘲笑为还在使用落后的面向过程的语言和方法。然而,面向对象终归是一种思想,而不在于其具体的实现形式是什么,语言只是一种形式上的东西,C语言里面同样可以用面向对象的编程和设计方法,写得不好的Java程序虽然具备了面向对象的形式,但不具备面向对象的结构。语言提供给我们的只是一种形式,当然具体的语言提供给我们的实现“面向对象”的方法不同,因而实现“面向对象”的难易也不同,例如Java里面就很容易实现“面向对象”,而C语言则要难得多,不是说C不能,而是要麻烦一点。

还要说得是,不要盲目崇拜“面向对象”,自从“面向对象”诞生以来,人们就沉浸在对“面向对象”的崇拜之中,仿佛一编程就要用“面向对象”去思考。回到最根本的出发点来,即“实事求是、一切从实际出发”,对于具体的问题,当然要具体分析,一些问题本来“过程性”是很强的,为什么就老想着用“面向对象”的方法解决呢?记住一句话:“好的面向过程胜过蹩足的面向对象”。

其实从整体来看,目前的计算机技术仍然是一个层级似的开发模型,而不是面向对象的开发模型。硬件开发人员工作在硬件一级上,软件开发则是在硬件一级的基础上进行的。而其中,又可以进一步的细分。软件开发又有底层的,系统的,应用开发,每一层的开发都是建立在下一层已经建立好的平台上的。用VC、Java编程,最多不过是工作在应用开发一层上,起下一层则是编译器,以及一些函数库或类库的开发。越底层的东西做起来越难,所以说,会用VC做应该开发,并不算是什么计算机高手,只是学到了计算机的皮毛而以。应该说这种层级的开发方法,才是计算机技术得以发展到现在的最大功臣。

面向对象在逐渐的渗透入计算机开发的每一个层次中去,但就目前的情况看来,面向对象用得最多的还是在应用开发上面。面向对象不是万能的,它也有它固有的缺点,在某些场合,面向对像是很难适用的。然而,现在的人们仿佛进入了一个面向对象的误区,盲目的崇拜面向对象,一遇到问题就用面向对象的方法去思考。自以为自己的想法由于用到了面向对象的思想而变得很先进,实际上不过是一种封闭的思维方法,自己把自己封闭在了面向对象的圈子里,还没察觉到,可悲。

按照马克思主义哲学的基本观点,一切实践活动都要实事求是,一切从实际出发,具体问题具体分析才是正确的,没有一种万能的方法,面向对象的方法也不是万能的。

作者:陈凯
RockCarry工作室:http://rockcarry.126.com
2005.1.7
版权所有、不得转载
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: