2009-12-30 42 views
1

我有一个这样工作的框架:在定义了一些元数据后,它用PHP类生成PHP代码。这些类是抽象的,并打算被分类。我该如何调用一层自动生成的代码?

class User extends UserBase { 
    //.... 
} 

的用户群提供了一些普通的功能,如定义的属性年龄,姓名,电子邮箱:

例如,如果我在后台定义一个用户类,它会像产生的用户群类,我只是继承,并为这些获得者和制定者。它也确认。

下一步是,它生成一个UserDataMapper类其可以在用户保存到DB,或恢复从DB一个用户,寻找用户,删除用户等

,PHP代码在3分割部分:

1)系统代码( “!不触摸它”)

2)自动生成的代码( “!不手动变更”)

3)用户代码( “做你想做的!”)

在分层思考时,系统代码对自动生成的代码不太了解(至少对于一些罕见的特殊情况),并且不知道用户代码。自动生成的代码使用系统代码,但不知道任何关于用户代码的信息。用户代码使用系统代码和自动生成的代码。

我正在写我的框架文件,现在和我在这里命名层麻烦,但特别是对于自动生成的代码层)

因此,如何可能我算什么? “服务层”也许?因为实际上,自动生成的代码只是方便用户帮助他简化硬性生活,并且只需按下后端中的某些按钮即可快速重构。

对此会有任何建议感到高兴。感谢大家。

+0

自动生成的代码层做了什么/促成了什么? – 2009-12-30 14:26:54

回答

1

应用程序骨架层,还是只是骨架?

+0

或只是懒惰层。 :D – JCM 2011-09-19 22:32:09

1

嗯......这是一个棘手的问题,因为这个架构并不真正符合任何标准模型。

这就是说,“服务层”似乎合理合适的,只要你没有其他的系统服务(如邮件传输,记录等),如果你有这些服务(我怀疑是很可能),那么事情会变得混乱。

作为一个建议如何'抽象'或'切换'层? (这真的取决于该层提供了什么设施。)

+0

你是对的,我确实有这些。 '抽象'听起来很难......不确定...并切换?嗯......实际上并没有在那里切换。或者只是“自动代码层”? – openfrog 2009-12-30 18:31:11

1

InterViews是一个非常好的用户界面系统,建于80年代后期。它有一个名为ibuild的用户界面构建器,这是我第一次看到一个系统生成的代码,可以通过子分类来定制。http://portal.acm.org/citation.cfm?id=120804

它们所使用的层的名称是:

  1. 的InterViews工具箱
  2. Unidraw系统
  3. 核心类(生成的代码)
  4. 核心的子类(自定义应用程序代码)

核心类是生成的,从不修改。对于每个核心类,都有一个核心子类,它只是一个简单的C++存根。如果核心子类在代码生成时不存在,则生成该核心子类,否则会假定某人已经对其进行了定制。由于核心子类很平凡,无论生成的代码或系统代码如何更改,它们都不会改变。

我不会过多担心图层的名称。这是一个如何生成代码的漂亮模型,人们会很快意识到它的工作原理。

+0

有趣!感谢分享这个。核心类和核心子类听起来很不错/合乎逻辑。 – openfrog 2009-12-30 18:46:26