我不知道如何在我的應用程序中設計幾個類。 基本上這是一個情況:問題與類設計模擬不同類的用戶首選項
- 每個用戶可以有許多偏好
- 每個偏好可以被稱爲不同的類的一個目的
- 偏好被表示爲(例如專輯,電影,書籍等)一組值(例如分數等)。
的問題是,許多用戶可能對同一對象的首選項,例如:
John: score=5 for filmid=apocalypsenow
Paul: score=3 for filmid=apocalypsenow
,自然我不想複製的對象電影中的每個用戶。
所以我可以創建一個名爲「偏愛」拿着得分,然後一個目標對象,像類:
User{
hasMany preferences
}
Preference{
belongsTo User
double score
Film target
Album target
//etc
}
,然後定義只是一個目標。 然後我會創建目標類(專輯,電影等)的接口:
Interface canBePreferred{
hasMany preferences
}
而實現所有這些類的。 這可以工作,但它看起來很醜,需要大量的連接才能工作。 你有一些模式可以用來模擬這個很好嗎?
乾杯, Mulone
謝謝! 有沒有一種優雅的方式來建模與不同類別的關係? 現在我會用不同的成員做到這一點: 電影targetFilm 專輯targetAlbum 等等 但是,這是非常醜陋的,需要的邏輯。 有什麼想法? – Mulone 2010-05-17 14:02:36
另外,是否可以在Grails中使用接口? 我找不到關於它的文檔。 – Mulone 2010-05-17 14:10:00
對不起。我是一名數據建模師,而不是Grails開發人員。就你的對象而言,你可以有一個龐大的類,它擁有你想要建模的所有不同對象的所有元素。空間有點浪費,但在概念上更簡單。 或者,您可以擁有一個基礎對象類,定義常用元素,並讓您的電影和專輯類繼承基礎對象,並分別定義特定於電影和專輯的元素。 – 2010-05-17 14:26:41