當我創建類時,簡單的構造函數往往是常態。在我目前的一個項目中,有一個電影庫,我有一個Movie
域對象。它有許多屬性,產生如下構造函數:構建一個(有點)複雜的對象
public Movie(string title, int year, Genre genre, int length, IEnumerable<string> actors)
{
_title = title;
_year = year;
_genre = genre;
_length = length;
_actors = new List<string>(actors);
}
這並不可怕,但它也不簡單。使用工廠方法(static Movie CreateMovie(...)
)還是一個對象構建器會值得嗎?有實例化域類的典型模式嗎?
UPDATE:感謝您的回覆。儘管我已經學到了一些在更復雜的情況下將會有用的東西,但我最初可能會反思這個問題。我現在的解決方案是將標題作爲唯一必需的參數,其餘爲命名/可選參數。這似乎是構建這個域對象的全面理想方式。
您的問題的解決方案不應作爲您的問題的更新發布。它應該是一個答案,或者在這種情況下,可能是一個評論。 – 2013-01-15 20:12:48