看起来你是想把FileManagement作为一个工具类,里面提供多种工具(比如下载文件工具,修改文件工具等等)。每个工具的具体实施由具体的Manager完成,比如DownloadManager。这样设计是比较好的(同时注意一下命名):
public FileUtility
{
public static FileDownloadManager DownloadManager
{
get { }
}
}
public class FileDownloadManager
{
public (static) byte[] Download(Uri uri)
{
}
}
这里{get}我留了空,同时Download方法也没有强制是static或者是non-static。具体选择要根据你实际项目的需求。举例:你的项目中,每个用户有一个自己的下载路径,那么Download应该是一个实例方法。在{get}一个DownloadManager时,你应该根据当前用户去构造不同的实例。如果都是通用的,那么可以设计成静态方法。
讲的很详细,谢谢!
一看就知道是c#的代码
看你写的代码DownloadFileManager应该是down 的一个成员,按照Scott Meyers所说的就是has a的关系
补充:至于你问题中的继承,按照Scott Meyers所说的就是is a的关系
is a 和has a应该很好分啊,“is a” mean‘s 是一个,“has a” mean’s 有一个
我们继承了人的属性,所以我们可以说“我是一个人”,我有一只iphone4只能说“我有一个iphone4”,不能说“我是一只iphone4”
@亦: 谢谢!
从你民命的定义上我觉得就有歧义,我觉得你可以看看《大话设计模式》,应该会帮助。
应该没有直接关系,但有间接关系,fileManagement是一个类,只能通过new一个对象(down)来使用
DownloadFileManager这个属性。
DownloadFileManager是FileManagement 的成员,字段或属性,DownloadFile是DownloadFileManager的方法,我想应该是静态方法?