[英]Changing class of object to subclass (& general questions on inheritance)
假設我有一個clubMember
和一個班級user
。 只有俱樂部會員才能成為用戶,用戶具有其他俱樂部會員var之外的登錄數據,並且俱樂部會員的特征會影響他們擁有的用戶的權限,因此user
擴展clubMember
。
現在,假設一個俱樂部成員想使用我當前正在編程的grails servlet。 創建一個新的user
實例將導致重復輸入,加上我將丟失先前成員與其他類之間現有的所有鏈接。 那么也許將clubMember
的類型轉換為user
將是進行操作的最佳方法嗎? 如果是這樣,那怎么做(在Groovy中)?
或者,您可以向我推薦除子類之外的一種實現方法嗎? 理想情況下,“列出所有成員”之類的請求也應返回用戶,即使子類也是如此? (編輯:我的grails應用程序就是這種情況)
如果您希望某種類型的值變成另一種類型的新值,那么在Groovy中基本上有兩種方法:
如果您不希望在類中使用轉換方法(我很自由,也將構造函數也稱為轉換方法),則仍可以使用asType版本的類別或運行時元編程來根據需要添加asType方法或您需要的構造函數。
但是蒂姆在評論中建議讓ClubMember成為User成員似乎確實是最簡單的版本
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.