我很困惑应该在类中包含什么类型的方法以及应该在服务类中编写什么类型的方法?
这是我的场景:
我正在编写一个音乐商店应用程序,我的模型设计如下
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<Music> musicFiles;
public List<Music> 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; }
}
}
用户可以进行这样的操作:
- 下载整张专辑或一些特定的音乐文件;
- 删除本地文件;
- 将专辑添加到收藏列表;
- 从收藏列表中删除专辑。
我应该将诸如 Dwonload 之类的方法放在模型中还是另一个服务类中?如果我把它们放在模型中,模型应该引用其他一些类。我目前的解决方案是:
解决方案1:创建IDownload/IFavorite接口,让模型实现,方法包含在模型中;
解决方案2:创建一个抽象类,包含下载操作和收藏操作相关的所有属性;让模型从抽象类继承;创建 DownloadService 类和 FavoriteService 类来实现操作的细节,传递如下参数:
AbstractClass obj1 = new MusicFile();
AbstractClass obj2 = nwe Album();
哪种解决方案是明智的,还是有其他解决方案?
谢谢!