gpt4 book ai didi

c# - 类中应该包含什么方法

转载 作者:太空宇宙 更新时间:2023-11-03 13:27:15 24 4
gpt4 key购买 nike

我很困惑应该在类中包含什么类型的方法以及在服务类中应该写什么类型的方法?

这是我的场景:

我正在编写一个音乐商店应用程序,我的模型设计如下

 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; }
}

}

用户可以进行这样的操作:

  1. 下载整张专辑或一些特定的音乐文件;
  2. 删除本地文件;
  3. 将专辑添加到收藏列表;
  4. 从收藏夹列表中删除专辑。

我应该将 Dwonload 之类的方法放在模型中还是另一个服务类中?如果我把它们放在模型中,模型应该引用其他一些类。我目前的解决方案是:

解决方案1:创建IDownload/IFavorite接口(interface)并让模型实现它们,方法包含在模型中;

解决方案2:创建一个抽象类,包含所有与下载操作和收藏操作相关的属性;让模型继承抽象类;创建 DownloadService 类和 FavoriteService 类来实现操作的细节,传递如下参数:

AbstractClass obj1 = new MusicFile();
AbstractClass obj2 = nwe Album();

哪种解决方案是明智的,或者还有其他解决方案吗?

谢谢!

最佳答案

还可以更好地调用您的音乐神器下载,因此您可以在不更改下载调用程序界面的情况下更改或添加新神器。这是我对问题的理解。

请考虑这是伪代码,并使用正确的语法编写您自己的 java 代码。

//Client call

DownloadStore store = new DownloadStore(myMusicfile)

store.download();

DownloadStore store = new DownloadStore(myAlbum)

store.download();


//your download store
DownloadStore {

IMusicArtifact artifact;

DownloadStore(IMusicArtifact artifact){
this.artifact=artifact;
}

public downlod(){

//write common coding for any artifact...

//artifact specific implemenation is called here
artifact.download();

}

}


//your interface class
IMusicArtifact {

download();

}


//your concrete class
Muscifile implements IMusicArtifact {


download(){
// Music file related downloaind stuff
}

}


//your concrete class
Album implements IMusicArtifact {

download(){
// Album related downloaind stuff
}


}

关于c# - 类中应该包含什么方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21983409/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com