文章目录 项目地址 一、接口的使用 二、泛型 2.1 单例模式 2.2 泛型方法 2.3 泛型类 2.4 泛型约束 2.5 泛型的应用 (分页功能) 三、反射 四、三层架构(反射解耦) 4.1 项目结构: 4.2 各个项目之间的引用 4.3 Models层编写
项目地址
C# 8
一、接口的使用
1.1 仿打印机
描述:打印机有不同颜色的墨盒,不同大小的纸张 设计: 打印机类, 墨盒的接口,纸张接口
墨盒接口IInkBox
namespace ConsoleApp6
{public interface IInkBox{string GetColor();}
}
纸张接口IPaper
namespace ConsoleApp6
{public interface IPaper{string GetPaper();}
}
根据接口实现类
//黑色墨盒类
namespace ConsoleApp6
{public class BlackInkBox : IInkBox{public string GetColor(){return "Black墨盒";}}
}//A4纸类
namespace ConsoleApp6
{internal class A4Paper : IPaper{public string GetPaper(){return "使用A4纸打印";}}
}
打印机类,只用在添加各个接口的构造方法就行,然后直接使用接口的方法
namespace ConsoleApp6
{public class Printer{public IInkBox? IIntBox { get; set; }public IPaper? IPaper { get; set; }public void Print(string content){Console.WriteLine($"打印机正在使用{IIntBox?.GetColor()} 和{IPaper?.GetPaper()}打印内容:{content}");}}
}
实例化
Printer p1 = new Printer();
p1.IIntBox = new BlackInkBox();
p1.IPaper = new A4Paper();
string content = "我是一只野猪";
p1.Print(content);
1.2 防盗门功能