【发布时间】:2011-07-23 14:46:20
【问题描述】:
我正在使用 LinqToSQL 和多层进行 ASP.Net MVC 项目。用户可以上传文件,基本上是 Excel 和 Access 文件,我的服务层将完成所有的验证和其他工作。
我正在考虑实现一个名为“UploadManager”的抽象类和 2 个子类:“UploadExcel”和“UploadAccess”。一些方法对两个类都是通用的,例如“SaveFile”和“DeleteFile”。但是,其他一些方法将仅限于特定的子类,例如仅属于“UploadExcel”类的“ValidateWorksheet”。
我正在设计这样的东西:
public abstract class UploadManager
{
protected void SaveFile(string fileName)
{
//Implement
}
protected void DeleteFile(string fileName)
{
//Implement
}
}
public class UploadExcel : UploadManager
{
private bool ValidateWorksheet()
{
//Implement
}
}
public class UploadAccess : UploadManager
{
private bool ValidateSomethingAboutAccess()
{
//Implement
}
}
我也在考虑使用接口。但是,我的主要疑问是我怎么知道我必须实例化哪个子类?如果上传的文件是 Excel 文件,则为“new UploadExcel()”,如果是 Access 文件,则为“new UploadAccess()”。
有没有办法做到这一点?有没有更好的办法?我有点迷失了这个......
提前致谢!!
【问题讨论】:
标签: c# asp.net-mvc-2 inheritance interface abstract-class