【讨论】开始有点烦面向对象了,不知道你们怎么看?

十一文 2012-03-29 11:21:45
记得最早接触面向对象是java

后来做php了,面向对象的特性 继承 封装 多态。

1.继承,继承多了 你都不知道哪里来的对象(当然这是设计者的问题,可是貌似大多数程序员的代码写的都不是很好,特别是业务复杂过后)。
网站数据源很多,有的是cache(这里特指内存的) 有的是文件 有的是数据库,出错了,都不知道哪里来的数据。一个个去排除。封装直接挡道了。

2.封装,本来是为了保证上层不用管下层,同时数据被封起来对外只提供方法,不会被外部修改。可是一般公司分工不是有人专门写 数据源层 逻辑层 这么分工的吧。而是基本按照业务分工。谁也不敢说我的数据访问层就没问题,谁也不敢说 我的某个类不出问题。至于数据的封装在web方面真的意义不大。

3.多态。php不支持,只有方法重写。


另外php对象的调用要多次查hash表,性能不高。其实php的类使用hash表来实现的,说白了和array比他反而是在array上面的hash表上封装。不如用array。

对于面向对象的应用在php,只觉得用在例如生成缩略图 数据库的操作封装 图片的操作封装 这些地方用我觉得倒是十分合适。


欢迎讨论。
...全文
282 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
十一文 2012-03-30
  • 打赏
  • 举报
回复
楼上的两位 别光说理论上的好处

说说实际应用上的好处和坏处!


如果说只是思维方式我觉得基本可以接受,但是了php用买你想对象的特性写真不是觉得很舒服
ci1699 2012-03-30
  • 打赏
  • 举报
回复
好归纳、好维护、不是么。

面向过程,这里一块那边一块,当然写得好些也不太大问题。
十一文 2012-03-30
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 的回复:]

好处 节省代码

坏处 看得累
[/Quote]

比面向过程 貌似代码反而多了吧 甚至在类里面 你可能会写几个永远都不用的方法
十一文 2012-03-30
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 的回复:]

引用 5 楼 的回复:

楼上的两位 别光说理论上的好处

说说实际应用上的好处和坏处!


如果说只是思维方式我觉得基本可以接受,但是了php用买你想对象的特性写真不是觉得很舒服

面向对象,面向对象编程……潮流,趋势……
[/Quote]


潮流并不是一定好的,做工程师一定得知道好用的,适合的才是好的。
码无边 2012-03-30
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 的回复:]

楼上的两位 别光说理论上的好处

说说实际应用上的好处和坏处!


如果说只是思维方式我觉得基本可以接受,但是了php用买你想对象的特性写真不是觉得很舒服
[/Quote]
面向对象,面向对象编程……潮流,趋势……
狄默默斯基 2012-03-30
  • 打赏
  • 举报
回复
好处 节省代码

坏处 看得累
qq120848369 2012-03-30
  • 打赏
  • 举报
回复
面向对象是木有问题的,哪个windows客户端不是C++写的,主要是项目管理。
十一文 2012-03-30
  • 打赏
  • 举报
回复
[Quote=引用 11 楼 的回复:]

我觉得很好用,容易拓展维护,一块一块的很整齐,不过如果是开发一些小站你感觉不出优势,要是几十万行代码的工程 效果是显而易见的
[/Quote]问下 哥们 你用面向对象写过几十万行代码的项目没?如果这样的项目用面向对象方式
但是程序员水平低


最后这种项目更是无法维护吧
xjpphp 2012-03-30
  • 打赏
  • 举报
回复
我觉得很好用,容易拓展维护,一块一块的很整齐,不过如果是开发一些小站你感觉不出优势,要是几十万行代码的工程 效果是显而易见的
xuzuning 2012-03-29
  • 打赏
  • 举报
回复
面向对象,是一种思维方式
面向对象编程,是一种方法

软件工程中有:自顶向下分析,自底向上编程。描述的是面向过程的编程方法,他需要对所涉及的每个细节都深入了解。
面向对象的编程方法是 自顶向下分析,自顶向下编程。他不需要一开始就了解细节,而是在过程中逐渐展开。暂时不了解的环节放个空对象就可以了

面向对象给编程带来很多方便,也必然带来更多的系统开销
这就是为什么 windows 操作系统从开始的 10M 变成现在的300、400M,功能增加了不少,而速度却越来越蜗牛

qq120848369 2012-03-29
  • 打赏
  • 举报
回复
楼上说的在点。

传统编程是数据结构+函数,有了面向对象思想以后,它就变成了数据结构和操作该数据结构的方法, 也就是更明确了功能的划分。

C语言有指针甚至是函数指针,可以直接操作指定地址的内存,用C实现面向对象中的派生,多态之类的非常简单,但对于绝大多数语言来说,它们并没有那么灵活的特性,所以都提供了类这些语言特性专门支持面向对象,不要怪它们。

另外,面向对象注重内聚,所以也意味着不同对象间的通信非常依赖于明确的消息,所以开发时接口的设计变得更加需要思考设计。
cyzz 2012-03-29
  • 打赏
  • 举报
回复
面向对象还是很好玩的,慢慢来,不要浮躁
helloyou0 2012-03-29
  • 打赏
  • 举报
回复
阿弥陀佛....楼下施主们请发言

21,887

社区成员

发帖
与我相关
我的任务
社区描述
从PHP安装配置,PHP入门,PHP基础到PHP应用
社区管理员
  • 基础编程社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧