当我创建类时,简单的构造函数往往是常态。在我目前的一个项目中,有一个电影库,我有一个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