V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
• 请不要在回答技术问题时复制粘贴 AI 生成的内容
oahebky
V2EX  ›  程序员

网站服务的 MVC 框架含有 OOP 思想吗?

  •  
  •   oahebky · 2020-09-20 20:33:48 +08:00 · 1506 次点击
    这是一个创建于 1555 天前的主题,其中的信息可能已经有所发展或是发生改变。

    在设计 web 框架 -- MVC 模式的框架,有和 OOP 搭上关系吗?或者说在设计框架的时候有考虑到面向对象吗?

    如果有的话,面向对象是怎么个面向法?

    以 request 为对象?

    以 SQL (数据库) 的 xxx 表 为对象?


    这可能是个比价宽泛的问题;

    也可以换句话说,OOP 的方式在 web 框架上有起到和 POP (面向过程编程)怎么样不同的作用吗?

    charlie21
        1
    charlie21  
       2020-09-20 20:59:15 +08:00
    ORM 是典型的面向对象编程 / 面向过程编程的分界线:直觉以为它该是面向对象的,但它却可以借助 “动态生成类型” 这一特性给人一种面向过程编程的感觉。

    原因是研究的不再是 “对象的 API ” 了,而是 “对象是怎么生成的” 这一过程。

    在写书时,这些辞藻本身只是作者方便描述而给读者灌输的一个感觉。感性认识不必教条
    shawn4me
        2
    shawn4me  
       2020-09-21 05:41:16 +08:00
    还是取决于如何如何对问题进行抽象吧
    opengps
        3
    opengps  
       2020-09-21 07:52:37 +08:00 via Android
    简单来说,mvc 的 m,就是 oOp 的 O
    ruoge3s
        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 的功能。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1261 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 93ms · UTC 17:53 · PVG 01:53 · LAX 09:53 · JFK 12:53
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.