title: Constructing a (somewhat) complex object
body: <p>When I create classes, simple constructors tend to be the norm. On one of my current projects, a movie library, I have a <code>Movie</code> domain object. It has a number of properties, resulting in a constructor as follows:</p>
  
  <pre><code>public Movie(string title, int year, Genre genre, int length, IEnumerable&lt;string&gt; actors)
  {
      _title = title;
      _year = year;
      _genre = genre;
      _length = length;
      _actors = new List&lt;string&gt;(actors);
  }
  </code></pre>
  
  <p>This isn't terrible, but it's not simple either. Would it be worthwhile to use a factory method (<code>static Movie CreateMovie(...)</code>), or a perhaps an object builder? Is there any typical pattern for instantiating domain classes?</p>
  
  <p><strong>UPDATE:</strong> thanks for the responses. I was probably overthinking the matter initially, though I've learned a few things that will be useful in more complex situations. My solution now is to have the title as the only required parameter, and the rest as named/optional parameters. This seems the all round ideal way to construct this domain object.</p>