2016-04-27 54 views
0

當有兩個相關對象時,最好是將它們作爲一個對象還是兩個分開?一對兩對象的相關信息

例如,如果您有一個Artist對象和一個與單個Artist相關的Album對象數組。

<?php 
// two separate objects? 
$artist = $ArtistDataMapper->find(1); 
$album = $AlbumDataMapper->allByArtist($artist->id); 
// or one 
$artist = $AristDataMapper->find(1); //datamapper will also include query for albums 
+2

這完全取決於您的要求。將編程思考爲「如何最好地存儲我的數據」只是編程的一種方式。另一種編程方式是「我如何最好地操作數據」。 – kainaw

回答

1

這取決於你的目的是什麼。 但是,如果您將其視爲物理實體,您最終可能會考慮對不同實體的「參考」。 我的意思是,你可能有: *藝術家對象(ID,姓名,出生日期等) *相冊對象(ID,artistId,名稱等)

最終,你可能想在這兩者之間甚至還有唱片目錄。

無論如何,這取決於您和您的要求。

1

類和對象是抽象。在定義它們時,程序設計者試圖將代碼的不同部分分離爲在相應上下文中有意義的邏輯實體。做面向對象設計的關鍵概念是abstraction,encapsulationinheritance,我建議你研究一下,其他需要研究的一些主題是SOLID,DRY,KISS,GRASP原理,也許其中一些是複雜的,但有些是相當的例如S來自SOLID代表單一責任這個原則表明一個類應該只有一個目的,並且只定義一種類型的對象,在你的情況下,藝術家是一個與專輯不同的邏輯實體,一個藝術家製作了專輯,這表明這些專輯之間存在某種關係,但它們並不完全相同。藝術家除了專輯之外還可以做其他事情,例如音樂會或採訪,並且可以製作專輯也由藝術家團體或其他實體組成,並且通常具有與藝術家不同的屬性。

+0

感謝您的輸入。我會閱讀你的一些建議。 – Ralph