在设计 web 框架 -- MVC 模式的框架,有和 OOP 搭上关系吗?或者说在设计框架的时候有考虑到面向对象吗?
如果有的话,面向对象是怎么个面向法?
以 request 为对象?
以 SQL (数据库) 的 xxx 表 为对象?
这可能是个比价宽泛的问题;
也可以换句话说,OOP 的方式在 web 框架上有起到和 POP (面向过程编程)怎么样不同的作用吗?
1
charlie21 2020-09-20 20:59:15 +08:00
ORM 是典型的面向对象编程 / 面向过程编程的分界线:直觉以为它该是面向对象的,但它却可以借助 “动态生成类型” 这一特性给人一种面向过程编程的感觉。
原因是研究的不再是 “对象的 API ” 了,而是 “对象是怎么生成的” 这一过程。 在写书时,这些辞藻本身只是作者方便描述而给读者灌输的一个感觉。感性认识不必教条 |
2
shawn4me 2020-09-21 05:41:16 +08:00
还是取决于如何如何对问题进行抽象吧
|
3
opengps 2020-09-21 07:52:37 +08:00 via Android
简单来说,mvc 的 m,就是 oOp 的 O
|
4
ruoge3s 2020-09-21 09:17:40 +08:00
mvc 是设计模式,oop 是编程思想。opp 编程,有三大特性-封装、继承、多态。mvc 的框架中,controller 层面上,我们可以有 BaseController,UserCommonController, AdminUSerController, HomeUSerController, 在这个过程中,UC 继承 BC,AU 和 HU 继承 UC,实现复用或者共享上一层次的方法,这个过程就是面向对象思想的应用啊。还有封装,把相关联的东西写在同一个类或者同一个文件夹中。多态,就是不同的情况下,不同的形态。比如定义了一个 interface,里面有 toArray 或者 toString 方法,不同的对象,他们的 toArray,toString 方法不同。比如 php 的 print_r 他能打印不同类型的数据,而输出在屏幕的结果都是字符串,说明不同的对象,在 print_r 的时候,都实现了 toString 的功能。
|