title: What method should be included in the class
body: <p>I'm confused what type of methods should be included in the class and what type of methods should be write in a service class?</p>
  
  <p>This is my scenario:</p>
  
  <p>I'm writing a music store app, and my models designed as below</p>
  
  <pre><code> public class Album
  {
      private string title;
  
      public string Title
      {
          get { return title; }
          set { title = value; }
      }
  
      private double price;
  
      public double Price
      {
          get { return price; }
          set { price = value; }
      }
  
      private List&lt;Music&gt; musicFiles;
  
      public List&lt;Music&gt; MusicFiles
      {
          get { return musicFiles; }
          set { musicFiles = value; }
      }
  
  
  }
  
  public class Music
  {
      private string title;
  
      public string Title
      {
          get { return title; }
          set { title = value; }
      }
  
      private string duration;
  
      public string Duration
      {
          get { return duration; }
          set { duration = value; }
      }
  
  }
  </code></pre>
  
  <p>Users can do such operations:</p>
  
  <ol>
  <li>Download a whole album or some specific music files;</li>
  <li>Delete local files;</li>
  <li>Add album to favorite list;</li>
  <li>Remove album from favorite list.</li>
  </ol>
  
  <p>Should I put methods such as Dwonload in the model or in another service class? If I put them in the model, the model should reference some other classes. My current solutions are:</p>
  
  <p><strong>solution1</strong>: create IDownload/IFavorite interface and let the model implement them, the methods are included in the model;</p>
  
  <p><strong>solution2</strong>: create a abstract class which contains all the properties which related to download operation and favorite operation; let models inherite from the abstract class; create DownloadService class and FavoriteService class to implement the details of the operations, pass the argument like below:</p>
  
  <pre><code>AbstractClass obj1 = new MusicFile();
  AbstractClass obj2 = nwe Album();
  </code></pre>
  
  <p>Which solution is sensible, or is there any other solutions?</p>
  
  <p>Thanks!</p>