C#简单工厂模式(文件案例)
来源:互联网 发布:java好用的分页插件 编辑:程序博客网 时间:2024/06/01 09:55
QQ:675556820
using System;using System.Collections.Generic;using System.IO;using System.Linq;using System.Text;using System.Threading.Tasks;namespace 读文件案例{ class Program { static void Main(string[] args) { Console.WriteLine("请输入文件名"); string fileName = Console.ReadLine();//获得用户输入 File file = Factory.GetFileName(fileName); file.OpenFile(); Console.ReadKey(); } } /// <summary> /// 父类,等待子类实现 /// </summary> public abstract class File { private string _fileName;//文件名 public string FileName { get { return _fileName; } set { _fileName = value; } } private string _extension;//后缀名 public string Extension { get { return _extension; } set { _extension = value; } } /// <summary> /// 构造函数 /// </summary> /// <param name="fileName"></param> public File(string fileName) { //在本类中,用私有字段即可,不必要使用属性来保护对应的字段 this._fileName = Path.GetFileNameWithoutExtension(fileName); this._extension = Path.GetExtension(fileName); } public abstract void OpenFile(); } public class TxtFile : File { /// <summary> /// 子类构造函数,调用父类构造函数为字段赋值 /// </summary> /// <param name="fileName"></param> public TxtFile(string fileName) : base(fileName) { } public override void OpenFile() { //此时就需要用属性来保护字段了 Console.WriteLine("文件名为{0},后缀名为{1}", this.FileName, this.Extension); } } public class AviFile : File { public AviFile(string fileName) : base(fileName) { } public override void OpenFile() { Console.WriteLine("文件名为{0},后缀名为{1}", this.FileName, this.Extension); } } public class Factory { public static File GetFileName(string fileName) { File file = null; switch (Path.GetExtension(fileName).ToLower()) { case "txt": case ".txt": file = new TxtFile(fileName); break; case "avi": case ".avi": file = new AviFile(fileName); break; //父类是虚方法的写法 //case "txt": //case ".txt": return new TxtFile(fileName); //default: return new File(fileName); } return file; } }}
0 0
- C#简单工厂模式(文件案例)
- 工厂模式的简单案例
- C# 简单工厂模式
- C#简单工厂模式
- 简单工厂模式c#
- C# 简单工厂模式
- C#简单工厂模式
- 设计模式案例--工厂模式--简单工厂(静态工厂)(simplefactory)
- 简单工厂模式(C#实现)
- C#工厂模式-简单工厂模式
- c#设计模式-简单工厂
- C#之简单工厂模式
- C# 简单工厂设计模式
- C#简单工厂设计模式
- C#设计模式--简单工厂
- C#实现简单工厂模式
- c#设计模式- Simple Factory模式(简单工厂)
- 设计模式(C#版)--简单工厂模式
- ObjectArx学习笔记-Object 2013 Wizard问题解决
- Flex 上传摄像头拍照、UI保存为图片
- [高精度+递推] uva 10328 Coin Toss
- 通过Key查找Volume的相关过程分析
- 求二叉树的深度
- C#简单工厂模式(文件案例)
- 第四十二讲 深入线程-续 (并发线程测试及lock的使用)
- TrafficServer内存分配器优化
- poj 2411 状态压缩dp
- uva UVA - 1091610916
- cocos2dx 字体
- 优化Myeclipse10 Building Workspace速度慢等问题
- MH370客机搜索有可能从残骸上取得突破
- Java swing 之边界布局