好的,这是我的错。我从来没有在学校学过编程,这就是为什么我总是以意大利面代码结束的原因。我总是对不同的模式感到好奇,至少在基础层面上试图理解它们。完全失败的OOP/MVC
MVC是我最恐惧的事情,我想我永远无法使用它的优势,因为我不明白它的基本原理。
我的实际问题/问题是这样的:
前端控制器调用它做一些初始化一个“核心”类,然后调用正确的操作/参数的实际控制人。控制器总是扩展'核心'类,所以我可以访问它的变量等。他们一起工作很好,但这里出现我真正的问题。
在不同情况下需要某种方法(在大多数情况下获取数据库条目)。 (例如,一个产品需要它的制造商)
在这种情况下我有两个(坏)的选择:
- 注入所需的方法进入“核心”类,所以它变得越来越臃肿随着时间的推移
- 注入所需的方法进入实际调用控制器,所以我最终将冗余的代码库
我看到了很多在我的方法可能出现的问题:
-
个
- 控制器总是延伸“核心”类
- “核心”控制器保存数据库对象,以便没有它,我无法访问我Db的
- 数据库功能(例如获得产品)所在的控制器,但我不能访问他们,因为他们总是在再次调用“核心”第一(扩大问题)
请告诉我:
哪里是我的方法的最大问题我可以在哪里纠正它?
注:
请不要把这个作为一个一般性的问题,我觉得这是一个回答的事情。如果您需要澄清一下,请提出要求,我会尽量减轻一些事情。
感谢您的宝贵时间,FABRIK
扩展一个“核心”类听起来像史诗般的失败。 :)而不是将数据库注入控制器。此外,您只需要一个控制器,而不是前端控制器和“实际控制器”。 – bzlm 2010-09-02 12:19:01
@bzlm:我在你的评论中看到了一点,但我没有看到正确的道路。 '核心'是为了容纳许多常用的重要方法/变量而创建的。如果不在里面,我可以在哪里握住它们?前端控制器在做它的工作时很好地调用它(调度器等),这很重要。 – fabrik 2010-09-02 12:32:56
看到这个答案及其评论http://stackoverflow.com/questions/3626955/totally-failed-in-oop-mvc/3627102#3627102 – bzlm 2010-09-02 12:55:42