一
- 定义接⼝IBattle,该接⼝包含功能Attack(),Move(),Jump();定义接⼝IRest,该接⼝包含
功能SitDown(),Sleep()。定义接⼝IPlayer,接⼝IPlayer继承IBattle与IRest。定义Soldier类
实现IPlayer接⼝
interface IBattle
{
/// <summary>
/// 攻击方法
/// </summary>
void Attack();
/// <summary>
/// 移动方法
/// </summary>
void Move();
/// <summary>
/// 跳跃方法
/// </summary>
void Jump();
}
/// <summary>
/// 休息接口
/// </summary>
interface IRest
{
/// <summary>
/// 坐下方法
/// </summary>
void SitDown();
/// <summary>
/// 睡觉方法
/// </summary>
void Sleep();
}
/// <summary>
/// 玩家接口,继承搏斗与休息接口
/// </summary>
interface IPlayer : IBattle, IRest
{
}
class Soldier : IPlayer
{
public void Attack()
{
Console.WriteLine("攻击!");
}
public void Jump()
{
Console.WriteLine("跳跃!");
}
public void Move()
{
Console.WriteLine("移动!");
}
public void SitDown()
{
Console.WriteLine("坐下!");
}
public void Sleep()
{
Console.WriteLine("睡觉!");
}
}
二
- 定义接⼝IUSB,该接⼝当中定义了数据读取的⽅法ReadData();定义抽象类存储设备
MemoryDevice,该抽象类MemoryDevice实现了IUSB接⼝,并且当中有抽象⽅法
Description,⽤于不同存储设备插⼊电脑⾃我描述。存储设备分为固态硬盘SolidStateDisk,
机械硬盘HardDisk,U盘UDisk三种。定义电脑类,该类包含功能:插⼊硬件设备。
/// <summary>
/// USB接口
/// </summary>
interface IUSB
{
/// <summary>
/// 读取数据方法
/// </summary>
void ReadData();
}
/// <summary>
/// 存储设备类
/// </summary>
abstract class MemoryDevice : IUSB
{
public virtual void ReadData()
{
Console.WriteLine("读取数据中。。。");
}
/// <summary>
/// 自我描述方法
/// </summary>
public abstract void Description();
}
/// <summary>
/// 固态硬盘类,继承MemoryDevice类
/// </summary>
class SolidStateDisk : MemoryDevice
{
public override void ReadData()
{
Console.WriteLine("SSD读取数据中。。。");
}
public override void Description()
{
Console.WriteLine("我是个固态硬盘,我的读写速度飞快!");
}
}
/// <summary>
/// 机械硬盘类,继承MemoryDevice类
/// </summary>
class HardDisk : MemoryDevice
{
public override void ReadData()
{
Console.WriteLine("HD读取数据中。。。");
}
public override void Description()
{
Console.WriteLine("我是机械硬盘,读写速度一般。");
}
}
/// <summary>
/// U盘类,继承MemoryDevice类
/// </summary>
class UDisk : MemoryDevice
{
public override void Description()
{
Console.WriteLine("我是U盘,读写速度很慢。");
}
public override void ReadData()
{
Console.WriteLine("U盘读取数据中。。。");
}
}
/// <summary>
/// 电脑类
/// </summary>
class Computer
{
/// <summary>
/// 插入设备方法
/// </summary>
/// <param name="memoryDevice"></param>
public void InputHardware(MemoryDevice memoryDevice)
{
memoryDevice.ReadData();
memoryDevice.Description();
}
}
三
- 使⽤泛型创建⼀个单例类基类,想要成为单例只需要继承该基类即可
/// <summary>
/// 单例类基类
/// </summary>
class SingletonBase<T> where T : class, new()
{
/// <summary>
/// 声明静态引用
/// </summary>
private static T singleton;
/// <summary>
/// 实现单例
/// </summary>
public static T Singleton
{
get
{
if (singleton == null)
{
singleton = new T();
}
return singleton;
}
}
}
class Person : SingletonBase<Person>
{
}
有疑问的可以私信博主。
点个关注,给个赞呗!