某个功能可以用函数实现,有必要再去使用类去实现吗

我用的是 PHP ,我现在写的项目里面的大多数的功能都封装到函数中了,需要的用时候,就 require ,再去传参调用函数,不知道这样会不会不好,难道还要用类去实现吗?

以segmentfault网站首页为例子(首页显示一些问题),如果要让我写的话(使用MVC),我会先写一个专门获取问题的函数 function getQuestion( 参数 ) , 然后再在 首页model(类) 中 require 这个函数 , 然后再传参调用这个函数,获取到数据后,再给View 去渲染 。
我总感觉 “require 这个函数然后去调用获取数据” 这样写不好 , 但是不知道应该怎样写才算好,希望大家指教指教

阅读 5.5k
11 个回答

毫无疑问,使用 OO 编程。

PHP项目发展到7这个版本,已经很OO了,没必要开历史的倒车啊。

追求性能? 别逗了,web应用的性能瓶颈一般不在这个地方。

你说的require这个问题,你用composer + namespace就可以了。

建议你学习一下symfony,laravel这样的框架代码,不要再闭门造车了。

其实都可以不妨碍,但是你要问一种最优解,标准方案的话,那么就使用实现吧。

可能你现在对很多概念还不理解,理解模糊,那么先按照被人推崇的做法做,等过一阵子在看。

你这问题就等于在问面向对象和面向过程哪个好,这个问题已经争论了很多年,如今也有人说面向函数,每个人都有自己喜欢的方式

我的见解是具体情况具体分析,面向对象易复用,易扩展,易维护,但是面向过程性能比面向对象高,如果项目中相同逻辑模块或者重复代码较多,推荐使用面向对象,如果项目结构不复杂而又追求性能,那么比较推荐面向过程。其实一个项目中这两种方式完全可以结合使用。看具体需求

http://m.blog.csdn.net/articl...

面向对象的几个特性:封装、继承、多态,如果你的需求抽象出来有其中的特性,就应该考虑用oop。

大型项目尽量使用类实现,而小型项目通过函数更加简便

需要重用的尽量通过类实现

通过类的好处是,代码写多了,模块化之后再写新项目会很轻松

真正的面向对象,必须要有:

  • 有状态 (stateful)

  • 用消息来通信 (message passing)

否则请考虑 函数式 或 过程式。

把 类 当作 命名空间 也是可以的,比如一个 类 里全是 静态方法。
require 本身就是 命名空间 的一种实现,所以不需要。

设计模式是不限于实现方式的,只是一种思想,按照个人喜好即可。
我本人喜欢用一个静态类(类里面全部是静态方法)处理这种场景

怎么方便怎么来

看着自己的项目来吧,不要一个项目什么都用,统一跟着项目走。

这个问题可以归结与面向对象与面向过程选择问题,首先来说,面向对象是以面向过程为基础,如何选择主要是根据项目需求而定。但是还是推荐面向过程的方式编程,原因有如下:
1.面向对象的思维更加接近现实,更加符合人类的思考方式
2.面向对象更加容易复用
3.可以更加容易使用设计模式的思考方式
4.面向对象的编程方式之前,还有一套分析设计的过程,OOA,OOD,所以面向对象可以更加好的很它们配合。

推荐问题
宣传栏