免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
楼主: shukebeita
打印 上一主题 下一主题

[心得 对象] OOP的PHP长啥样 [复制链接]

论坛徽章:
0
41 [报告]
发表于 2004-03-03 10:13 |只看该作者

OOP的PHP长啥样

原帖由 "hongweig"]而只到这些年才真正的兴盛起来,这说明oop中还是存在着很多问题[/quote 发表:


的确OOP中还有一些问题,   但我在论坛中的还没有看到一个反OOP的说到点子上。这些年才真正的兴盛起来的真正原因是由于计算机硬件发展和软件应用的深度和广度的不断提高。对于程序和程序开发过程中互通合作的要求也不断提高,人们为了应对这些面的挑战不断寻找着新的出路,所以OOP在这些方面的优势更加得到人们的重视。

[quote]而不知道什么是过程式编程语言,怎么可能理解oop呢?

记得96年的时候曾经尝试学习Windows编程(那时我第一次听到这个令人迷惑的词“面向对象”)。因为以前学过一些C之类的东西,所以总想找到那个main函数到底在哪里,对于消息机制也很难理解,总觉得应该有一个死循环在那里,但始终没有结果。用现在的话说就是郁闷至极,最后也只好放弃了。

而真正让我体会到OOP的竟然PHP。学起PHP我再也不用寻找什么main函数了,http 访问也很快让我理解什么叫消息机制。为了写出更好的脚本我需要学习分离事务逻辑,和表现逻辑,OOP的思想很自然的就进入我的脚本里了并没有感到什么障碍,反而觉得轻松和愉快。现在回头看看那些java 和C++的代码,我自己都感到奇怪,我竟然能够看懂了。所以最近我在教一个(完全没基础的)学生学习PHP的时候就让他只看到 函数那个章节(因为函数是封装的最基本单位)而后就开始学习用类来编程,训练他用oop的眼光来寻找解决问题的方法,目前进展不错。

  1. 自称是完全的oop?连java不敢不这么说啊。
复制代码

据说有一种叫smalltalk的东西自称是完全的oop,有机会你可以试一试,免费的呦。
其实OOP完全是思想和语言没有大关系。所以也就不存在什么完全OOP的语言了。

论坛徽章:
0
42 [报告]
发表于 2004-03-03 12:20 |只看该作者

OOP的PHP长啥样

smalltalk是一种很古老的语言,java的oop大多是借用它的。这种语言应用并不广。

呵呵,让我真正理解的oop是python.

而并非php.

论坛徽章:
0
43 [报告]
发表于 2004-03-04 00:55 |只看该作者

OOP的PHP长啥样

为什么要OO?
因为机器快了;软件大了;一个人搞不定了;维护花的钱多了。。。。。

论坛徽章:
0
44 [报告]
发表于 2004-03-04 09:05 |只看该作者

OOP的PHP长啥样

为什么要OO?
因为机器快了;软件大了;一个人搞不定了;维护花的钱多了。。。。。


哈哈,楼上一言中的。

确是是这样。
不过,应该是人力成本过高才对哦。
一个人能力太有限。
sports98 该用户已被删除
45 [报告]
发表于 2004-03-16 18:45 |只看该作者
提示: 作者被禁止或删除 内容自动屏蔽

论坛徽章:
0
46 [报告]
发表于 2004-04-05 16:48 |只看该作者

OOP的PHP长啥样

原帖由 "dualface" 发表:
为什么要OO?
因为机器快了;软件大了;一个人搞不定了;维护花的钱多了。。。。。


记得developerworks寄的一期专刊中有篇访谈说道了OOP,大致意思就是OOP并没有让软件开发效率提高多少,没有从根本上解放程序员,只不过原先可以写到1000行现在可以写到10000行了 ; )

论坛徽章:
0
47 [报告]
发表于 2005-04-30 16:27 |只看该作者

OOP的PHP长啥样

我理解OO是C++
哈哈!!

论坛徽章:
0
48 [报告]
发表于 2005-05-01 02:30 |只看该作者

OOP的PHP长啥样

哎,呵榀. 深夜逛到这里,看来看去...

力推OOP的都是觉得面向过程的编程方式主要缺陷在于:代码很难重用\可维护性差! 让他维护面向过程的程序代码他就喊着不如重写(试试看好了!)

以下说法均指在PHP中...:p

我觉得通过 include 或 require 来调用所需要的代码段,代码按功能命名,分放到各目录中去....维护非常方便,既然可以抽像成函数(我觉得函数本身就是一个抽像),就不存在很难维护的问题了; 而OOP强调的封装, 通常来说,PHP的程序不像C一样只有一个入口,而是分段成数个PHP程序(相当于C中有数个main(),编译成好多支可执行程序), 完成某一个过程只需要少许函数就能完成了,OOP的形式却无故要装入很多无关的函数, 这一点让我觉得很不舒服.  代码的重用基本上都是函数的重用, 所以这点上非OOP并无任何劣势.

程序好不好维护主要和编程者的写法(甚至代码的排版)才有很大关系.

不管什么编程思想,在我看来(我也是旁学的,非科班,不懂也不需要懂什么太高深的思想)任何语言的程序除了加法运算,就是if 和 goto; 面向过程显得比较自然,符合常规的逻辑思维; 就是一个人爬树摘果子一样, 从下往上, 顺着果子找路子.

我自己PHP的学习使用过程中,也经常用到一些类啊什么的,都是一些相对很抽象的过程(比如MYSQL操作, SMTP对话等);非硬要把一些其它的东西封装,我感觉很别扭。

另一点,读别人的程序本来就累,需要较强的功力和很强的耐力才行。
就像楼主的例子,一个程序的主页面就四行程序(多数功能都只需这四行吧),看起来固然很养眼,但真要查错,修改维护时,还是一样要用人脑模拟电脑去运行程序,分析错误。。。。(小错误的话grep一下就行了)

上次特意去看C++的书,对于我来说让我看C++的程序生不如死。。。要改个程序又是重载+多态,又是封装。。。同样的函数名称,参数个数不一样函数的定义也不一样,结果也却完全不一样,搞不清楚改哪个地方,想模拟电脑走程序都不行哎。

论坛徽章:
0
49 [报告]
发表于 2005-05-01 02:34 |只看该作者

OOP的PHP长啥样

我觉得PHP这东西(4.x)还是过程式舒服,当然编程中你会发现有些过程差不多,不停的重复,却又不是一个函数可以抽象的时候,就可以用类来封装了。不抽象的东西也用类封装怎么感觉都不舒服,以前看过xoops的代码中关于多国语言支持的部分...

似乎也就把一些翻译,塞到一个类里,整类就一个函数的样子,感觉很不好。

论坛徽章:
0
50 [报告]
发表于 2005-05-01 03:06 |只看该作者

OOP的PHP长啥样

提两点不同的意见:
1、PHP5的类虽然健全了一些,但还是有缺陷,比如只能继承一次在实际应用当中显得非常不方便,另外不支持重载(当然这可以通过设定参数的默认值再适当加一些判断来解决),再就象接口、抽象类什么的好像也都不支持。
2、提出以上的看法并不是说我认为PHP不好,我非常喜欢PHP,用一种语言,就要发挥它的优势,面向对象有它的优点,但并不是说面向过程就不能用了。通过合理的设计+有效的程序组织+部分的面向对象(我一般把核心、通用的东西用类封装),用PHP一样能够开发出强大、灵活的程序,而这,不一定就非得完全OO。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP