2009-12-30 43 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