首先,抱歉如果標題有點混亂。德爾福擴展類
我打算開發一個小型的erp應用程序。這個apllication將使用插件/插件。這個插件可能會添加或擴展基礎應用程序的某些模塊。
例如,我有屬性「id」和「名稱」的TCustomer類。 插件1將添加一個屬性「dateofbirth」。 addon 2會添加一個屬性「balance」和一個方法「GetBalance」。
插件1和插件2不知道對方。插件1可能已安裝,而不是插件2,反之亦然。所以這兩個插件都必須繼承基類的tcustomer類。
問題是兩個插件都安裝好了。我如何在兩個插件中獲得擴展屬性?我也將不得不擴展窗體來添加控件來顯示新的屬性。
可以用delphi完成嗎?達到這個目標的最好方法是什麼?也許你可以指點我一些例子的文章?
感謝和我的英文不好 Reynaldi
你的插件類不應該是TCustomer的後代。 – teran
我的意思是'name'或'id'是_property_,所以使它成爲'TCustomerProperty'。每個屬性都應該有名稱,類型(字符串,數字,日期)和值。當你加載插件時,你應該在'TCustomer'類中註冊loeded屬性,爲此你的'TCustomer'應該擁有'TCustomerPrperty'的集合。如果你要創建插件作爲DLL(也可能用C++或其他語言),那麼使用繼承是不可能的(正如你所說的)。在這種情況下,你應該使用_Interfaces_('ICustomerProeprty')。所以,Iheritance是不是解決這個問題的方式,屬性應該是一個單獨的類 – teran
你可以考慮ORM爲Delphi像這裏:http://stackoverflow.com/questions/2942409/is-there-any-new-orm- for-delphi-2010 – philnext