代码之家  ›  专栏  ›  技术社区  ›  fabrik

在OOP/MVC中完全失败

  •  1
  • fabrik  · 技术社区  · 14 年前

    MVC是我最害怕的,我想我永远也不能利用它的优势,因为我不了解它的基本原理。

    我的实际问题如下:

    在不同的情况下需要某种方法(在大多数情况下获取数据库条目)。(例如,产品需要制造商)

    • 将所需的方法注入到“Core”类中,使其随着时间的推移而膨胀
    • 将所需的方法注入到实际调用的控制器中,这样我将得到一个冗余的代码库

    • 控制器总是在扩展“核心”类
    • “Core”控制器保存数据库对象,因此没有它我无法访问我的数据库
    • 数据库功能(例如获取产品)在控制器中,但我无法访问它们,因为它们总是先调用“Core”(再次扩展问题)

    请告诉我:

    注:

    请不要把这当作一个一般性的问题,我认为这是一个可以回答的问题。如果你需要一些澄清,请要求它,我会尽量减轻事情。

    谢谢你宝贵的时间,法布里克

    3 回复  |  直到 14 年前
        1
  •  0
  •   Anton N    14 年前

    你最大的问题是有“核心”类,尽快摆脱它。 顺便说一句,FrontController也不是实现MVC的唯一方法。

        2
  •  1
  •   Lazarus    14 年前

    (存储库<==>)模型<==>控制器--->视图

        3
  •  0
  •   Ryan Peters    14 年前

    研究如何使用DI框架将存储库的实例自动注入控制器(或者更好地说,是代理类)。尝试将业务逻辑保持在控制器之外,而是将其反射到helper或proxy类中。

    我倾向于将逻辑拆分为视图=>控制器(仅用于以后业务和视图之间的交互)=>业务逻辑=>模型(DTO)=>最低级别的数据访问。

    另外,如果您需要视图中的公共帮助程序功能,可以创建几个扩展来提供帮助。