关于面向对象的一些思考

我们都知道,PHP的特色就是简单、快速、适用,在PHP的世界里,一切都是以解决问题为主,所以呢,很多设计方面的东西,往往被忽视或者说是排斥,虽然说PHP的面向对象这个思想被提出来很多年了,但是一直在被排斥,很多人目前都在倡导原生态的开发,甚至于有人说面向过程式的开发,伴随着人们对于面向对象的误解,PHP的框架如雨后春笋般一个接着一个的冒出头来,但是同时这些框架也在接受着质疑。

不过有一点是我们可以确定的,那就是PHP确实不是一门很好的面向对象的语言,因为它无法做到完全的面向对象,也无法优雅的实现面向对象,所以现在比较流行的还是以类为主的开发方式,也就是抛弃或者精简经典的MVC理论,很少或者说几乎不用设计模式,以类加代码块的方式进行代码组合来实现功能。

上述的开发方式在PHP的开源项目中是比较流行的,也是最适合二次开发的,而比较纯粹的面向对象的产品我知道的就是zend framework,不过像这类产品入门的门槛比较高,开发成本也高,一般比较少见,市场占有率也低。

不过,我们要知道,所有的产品最终都是为市场服务的,我们的PHP面向的是web开发市场,所以,并不需要高端的、复杂的设计和开发技巧,但是咱们之前了解的面向对象的东西并不是无用的,因为一些基本的理论,在任何一门语言里都有共性,语法和函数呢,只是学好一本语言的必要条件,而不是充要条件,这个语法和函数都是比较浅层的东西,只要掌握面向对象的思想,我们即使没有一点点java和.net的基础,也是可以看懂他们写的代码。

我们可以把PHP看做一个工具,它只是一个脚本语言,在web开发中,PHP语言本身所占的分量越来越低,但是却涉及到程序设计的方方面面,而面向对象只是其中之一,也是最主要的一个方面,PHP呢,它是一种经典的思想,能实现低耦合,易扩展的代码,它可以使用最经济的方式干一件事情。

理论是重要的,但是理论也不是一成不变的,像我们之前提到过的设计模式,也没必要完全遵守,可以做一些精简和变形,所以呢,我们在PHP的开发过程中,应该是灵活的使用面向对象的特性和设计原则,像那种流程明确,需求清晰,需求变更风险小的业务逻辑,过程化开发(传统软件开发模式)显然更加合适,就像解一道数学题,需要一步步地来搞定,上一步的结果作为下一步的条件,这个时候呢,面向过程显然更加符合人类的思维模式。

但是呢,对于那些流程复杂,需求不确定,存在着很大的需求变更风险的业务逻辑来说,此时使用过程化的开发方式将会使得程序变得非常的繁琐臃肿,实现难度很大,并且后期维护的成本,高的惊人,这个时候呢,抽象思维将会是更加合适的,我们使用面向对象的思维去抽象业务模型,并且随着需求,不断地进化,最终交付使用,其扩展性和可维护性都要比过程化的程序要好的多得多。

我们来看下面向对象比面向过程好的一些地方:

  1. 新成员的加入和融合不再困难,高度抽象有利于高度总结
  2. 代码及文档,团队中的任何人都可以轻松获得产品各个模块的基本信息,而不需要再去通读大部分代码

 其实呢,面向对象也好,或者说面向过程也好,目的呢,只有两个,一是功能的实现,二是代码的维护和扩展,只要实现了这两个目的,那就是好的,总之呢,我们要深入了解面向对象的思想,但是呢,我们不能执着于面向对象。虽然呢,PHP不是一门好的面向对象的语言,但是它却是一个很好的web设计语言,我非常相信,在web开发领域,PHP将会继续发挥它的作用,以其简单、快速吸引更多的像你我之类的开发者加入其中。

同时呢,我们希望PHP会越来越好,毕竟怎么说它也是世界上最好的语言啊。。。

好啦,本次记录就到这里了。

如果感觉不错的话,请多多点赞支持哦。。。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

luyaran

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值