是否存在"过于抽象"的东西?

Dam*_*che 5 php abstraction zend-framework

我想知道我是否想以RAD的名义抽象过多.

这里的一个例子 - 假设我有一个数据库表,它有3个模型(主模型,映射器模型和数据库模型).每个都扩展了抽象模型,映射器和db表模型.

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

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

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

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

我的想法是使用像injectModel('modelTwo')这样的抽象方法或魔术方法.

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

感谢任何建议.

我不在乎我的一些代码是不连贯的; 我可以在这些部分写清楚的文档和注释.

小智 2

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

尽管一开始感觉还不错,但支持和引入新的抽象方法变得越来越复杂,更不用说团队其他成员在处理此代码时面临的困难(无论它的文档记录得多么好)。

这种方法感觉很像编写我自己的 ORM,这绝对不是我的计划。我现在最坚定的信念是我应该从一开始就采用教义。