首页 新闻 搜索 专区 学院

类的关系?继续关系?如何定义?

0
悬赏园豆:5 [已解决问题] 解决于 2012-03-01 13:39

FileManagement down = new FileManagement();
down.DownloadFileManager.DownloadFile(ViewState["Path"].ToString());

FileManagement 和 

DownloadFileManager是什么关系?

应该怎么定义这两个类??

王和平的主页 王和平 | 初学一级 | 园豆:2
提问于:2012-02-28 14:01
< >
分享
最佳答案
1

看起来你是想把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时,你应该根据当前用户去构造不同的实例。如果都是通用的,那么可以设计成静态方法。



收获园豆:5
水牛刀刀 | 大侠五级 |园豆:6350 | 2012-02-28 18:11

讲的很详细,谢谢!

王和平 | 园豆:2 (初学一级) | 2012-03-01 13:37
其他回答(4)
1

一看就知道是c#的代码

看你写的代码DownloadFileManager应该是down 的一个成员,按照Scott Meyers所说的就是has a的关系

| 园豆:264 (菜鸟二级) | 2012-02-28 14:07

补充:至于你问题中的继承,按照Scott Meyers所说的就是is a的关系

is a 和has a应该很好分啊,“is a” mean‘s 是一个,“has a” mean’s 有一个

我们继承了人的属性,所以我们可以说“我是一个人”,我有一只iphone4只能说“我有一个iphone4”,不能说“我是一只iphone4”

支持(0) 反对(0) | 园豆:264 (菜鸟二级) | 2012-02-28 14:18

@亦: 谢谢!

支持(0) 反对(0) 王和平 | 园豆:2 (初学一级) | 2012-03-01 13:36
0

从你民命的定义上我觉得就有歧义,我觉得你可以看看《大话设计模式》,应该会帮助。

today4king | 园豆:3299 (老鸟四级) | 2012-02-28 14:09
0

应该没有直接关系,但有间接关系,fileManagement是一个类,只能通过new一个对象(down)来使用

DownloadFileManager这个属性。

小小缘 | 园豆:41 (初学一级) | 2012-02-28 14:17
0

DownloadFileManager是FileManagement 的成员,字段或属性,DownloadFile是DownloadFileManager的方法,我想应该是静态方法?

Rookier | 园豆:652 (小虾三级) | 2012-02-28 16:47
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册