面向对象编程的思考

来源:互联网 发布:微信服务号域名 编辑:程序博客网 时间:2024/04/29 06:50

刚开始接触php和网页编程不久,对于这方面的领悟不多。这篇文章就整理一下之前接触Java时的对于面向对象编程的一些思考吧。

在刚接触编程的时候,感觉无论是面向过程还是面向对象编程都没有什么区别,因为都是要去把各个方法的具体代码实现出来。而在接触过基本的网络通信,加上一些简单的程序练习之后,面向对象的方法在编程中的优势就渐渐体现出来。

在网络通信中,一个很明显的特点便是分层。在各层实现不同的功能,而由专门的接口来实现不同层之间的连接交流。


(图片来自网络,TCP/IP参考模型)

各层在实现自己具体功能,不去考虑与别的层是如何工作以及他们之间如何通信。

而在面向对象编程中,和网络通信类似,更先去考虑的是对象(类)与对象之间的关系,其暴露在外面的接口,而把其具体实现方法的代码放在各个对象里面去实现。例如在写坦克大战中,先抽象出其中主要的几个对象(类):坦克,子弹,墙。在主框架中生成其对象,使用继承、接口确定各个对象之间的关系。之后去各个对象的具体代码里实现其属性,方法。因而在实际编程中可以减少很多花费在修改、维护上的代码(如直接使用对象的set()方法修改各个对象的属性值),对象的重复使用也能很大的减少创建对象时的代码量(如在new不同对象时传递进不同的属性)。

以上就是在学习过程中对于面向对象的一点思考,随着以后接触到的代码量的增加,对于这种思想,特别是封装、继承、多态三个主要特性会有更多不同甚至相反的理解。


0 0