我有兩個與父子關係的表,仍然混淆瞭如何將它映射到表中的類。封裝方法而不使用業務對象/值對象的簡單類。這些表是類別和產品。孩子父母表:我應該把方法放在兩個類中?
當從一個類別的webform列表產品,我應該做什麼?
創建類別對象並調用GetProductsByGroup(INT的groupId)
或
創建產品對象並調用GetProductsByGroup(INT的groupId)
哪個類應該擁有的方法?
我有兩個與父子關係的表,仍然混淆瞭如何將它映射到表中的類。封裝方法而不使用業務對象/值對象的簡單類。這些表是類別和產品。孩子父母表:我應該把方法放在兩個類中?
當從一個類別的webform列表產品,我應該做什麼?
創建類別對象並調用GetProductsByGroup(INT的groupId)
或
創建產品對象並調用GetProductsByGroup(INT的groupId)
哪個類應該擁有的方法?
該方法的主要關係是什麼 - 產品。因此,我將它放在Products類中,因爲它將處理與產品相關的所有內容。同樣的,Category類可以有多種處理方法,查詢修改類別&。
這幾乎是你的,但我會做以下區分:
如果該方法是在產品類,使它成爲一個靜態方法。
如果該方法在Category類上,請不要將其設置爲靜態。
如果您經常訪問某些內容,則可以考慮將其設置爲您的類別對象的屬性,以便爲該類別延遲加載產品。即第一次訪問屬性時,它會從數據庫中檢索產品並將它們存儲在您的類別對象中;隨後的調用只需返回該列表而不必再次訪問數據庫。
簡答:既不。您需要一個集合類。
一般來說,一個類將在表中代表一行,集合將表示該表或其子集。
如果您不想使用業務或數據層對象(順便說一句,這將是適當的),那麼任何一個類都可以在實踐中擁有該方法,但可以作爲靜態方法。不過,它可能會讓生產類擁有它稍微有點意義,因爲它應該返回一個產品集合
沒有一個。
爲什麼?
分類:類別是有意義的,它不應該知道任何產品存在。
產品:產品有一個類別,但不知道同一類別的其他產品。
那麼呢?
根據規格提供檢索產品(可稱爲產品存儲庫)的方法的服務。
實施例:
public static class ProductRepository
{
public static Collection<Product> GetProductsByGroup(int groupID)
{
...
}
}