使用PowerDesigner進行代碼生成


    很多代碼生成器都選擇了從表結構來生成領域模型,這樣的方案有一個前提,就是領域模型和數據庫表結構是同構的,也就是說領域模型中的類和數據庫中的記錄結構十分吻合,這樣數據庫表結構可以簡單的直接映射到領域模型。

    但是在業務邏輯比較復雜的情況下,對象方案和關系方案往往是不相配的,通常在兩者之間有一個數據映射器來隔離兩者,這時兩者是相互不可見的,相互獨立演變的。這樣,基於表結構的代碼生成領域模型的類就行不通了,而應該使用對象模型。而這樣的代碼生成幾乎不需要自己在寫代碼生成器,可以使用PowerDesigner9。

    PowerDesigner9自己就已經具有代碼生成功能,你只要建立一個Object_Oriented Model(語言選擇C#,類圖),完成類設計后,使用Language菜單下的“Generate C# Code”。生成完后看看代碼文件,所有的屬性都沒有get和set方法,要想生成這兩個方法,就要自己動手修改PowerDesigner的代碼生成模板,可以選擇Language菜單下的“Edit Current Object Language”,在彈出的窗口中修改代碼模板:


可以在value部分看到代碼生成的腳本,如果你使用codesmith等代碼生成工具寫過模板,這段腳本就很容易理解了,只要自己修改下就可以了,例如,我把其中的第三行:[%visibility% ][%flags% ]%dataType% _%Code%[ = %InitialValue%];

這句改成:

private %dataType% _%Code%[ = %InitialValue%];

public %dataType% %Code%

{

get

{

return _%Code%;

}

set

{

value = _%Code%;

}

}

另外兩個if分支中的也作相應的修改,再生成一次看看,get和set函數都有了。

C#的代碼模板是PowerDesigner的安裝目錄下的Resource Files\Object Languages目錄下的csharp.xol文件,打開后可以看到實際上是一個xml文件,這樣你就可以自己定義代碼生成的模板了。

來源:http://tech.it168.com/m/2007-08-29/200708291905519.shtml

相關文章:

powerdesigner自動生成代碼的修改

powerDesigner類圖生成JAVA代碼  


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM