2011-01-06 50 views
5

我想知道如果我想以RAD的名义在这里抽象太多。有没有这样的事情是“太抽象”?

这里的一个例子 - 假设我有一个包含3个模型(主模型,映射模型和数据库模型)的数据库表。其中每个扩展抽象模型,映射器和数据库表模型。

这个设置非常好。大部分操作实际上都在抽象模型中。但是,现在我想抽象得更多。我会远吗?

我已经抽象了基本的CRUD操作,现在我正在考虑抽象更高级的操作。

一个例子就是获取一些相关的模型。目前我会这样做:

$ modelOne-> modelTwo();其中modelTwo是明确定义的。

我的想法是,然后使用抽象方法,如injectModel('modelTwo')或魔术方法。

我总是可以建立相关规则以确保我的模型保持完整......但是这太过分了吗?

欣赏任何建议。

我不在乎我的一些代码是不连贯的;我可以在这些部分写出明确的文件和评论。

+2

换句话说,“计算机科学中的任何问题都可以用另一个抽象层来解决”。所以不,没有“太抽象”的东西。 ;) – FrustratedWithFormsDesigner 2011-01-06 17:01:29

+2

heh。当然,存在 - 抽象不可用或无用的时刻,只会阻碍意义,你已经“太抽象”了。 – Oded 2011-01-06 17:03:38

回答

2

这正是我在开发当前应用程序时所采取的方法。现在我有一大堆抽象方法和魔术方法来获取并保存位于Zend_Db_Table和Zend_Db_Table_Row顶部的模型关系。

虽然一开始感觉很好,但支持和引入新的抽象方法变得越来越复杂,并没有提到团队的其他成员在处理这些代码时面临的困难(无论它有多好的文档记录是)。

这种方法非常像写我自己的ORM,我绝对不打算。我现在最强烈的信念是,我应该从一开始就接受主义。

1

爱因斯坦没有说过“一切都应该尽可能简单,但不要简单一点。”?

我的简单理解是如何解释的,就是仅仅根据需要进行抽象。如果你比较流行的框架,你认为哪些抽象过于集中注意力,远离你正在做的事情?我认为ASP.NET和Java往往比PHP或node.js更适合这样做。另外,如果您将XML与JSON进行比较,则可能更明显的是,太多抽象会导致更重的负载和更重的智能权重。我不认为做抽象的学者是有价值的。

KISS

相关问题