C#简单工厂模式

C#简单工厂设计

class Program
{
static void Main(string[] args)
{
Console.WriteLine(“请输入文件路径”);
string filepath = Console.ReadLine();
Console.WriteLine(“请输入文件名称”);
string filename = Console.ReadLine();
//简单工厂模式
BaseFile bf = GetFile(filepath, filename);
if (bf != null)
{
bf.OpenFile();
}
Console.Read();

    }
    static BaseFile GetFile(string filePath, string fileName)
    {
        BaseFile bf =null;
        string strext = Path.GetExtension(fileName);
        switch (strext)
        {
            case ".txt":
                bf = new TxtFile(filePath, fileName);
                break;
            case ".mp4":
                bf = new Mp4File(filePath, fileName);
                break;

        }
        return bf;
    }
}
class BaseFile
{ 
    //字段 、属性、构造函数、函数、索引器
    private String _filePath;//Ctrl+R+E(自动封装属性)

    public String FilePath
    {
        get { return _filePath; }
        set { _filePath = value; }
    }
    public string FileName { get; set; }//自动属性填充 prop+两下Tape
    public BaseFile(string filepath, string filename) 
    {
        this.FilePath = filepath;
        this.FileName = filename;
      
    }
    //设计一个函数打开指定文件
    public void OpenFile()
    {
        ProcessStartInfo psi = new ProcessStartInfo(this.FilePath + "\\" + this.FileName);
        Process pro = new Process();
        pro.StartInfo = psi;
        pro.Start();
     
    }

  
}
class TxtFile : BaseFile
{
    //子类会默认调用父类的无参数的构造函数
    public TxtFile(string filePath, string fileName)
        : base(filePath, fileName)
    {

    }

}
class Mp4File : BaseFile
{
    public Mp4File(string filePath, string fileName)
        : base(filePath, fileName)
    {

    
    }
 
}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值