设计包括:工产模式,单例模式,回调函数,面向接口编程
步骤:
1.创建Base抽象类(提供外部调用的方法和字段)
2.创建继承Base类的基类(实现抽象类的方法)
3.创建用于实现单例模式的类用于提供相对应的播放器进。
public abstract class PlayerBase(){
///抽象类
}
public class VlcPlayer:PlayerBase{
//方法的实现
}
public class XXXPlayer:PlayerBase{
//方法的实现
}
public sealed class PlayInstance() //单例模式+简单工厂
{
private static PlayerBase_vlcPlayer;
private static PlayerBase_XXXPlayer;
/// Action 自定义回调函数
public static BasePlayer GetPlayerInstnce(Action EndReachedAction, Action PlayingAction, Action<float> PositionChanged, Action<double> TimeChanged, string PlayerType = "VLC")
{
switch(PlayerType){
case :"VLC"
if(_vlcPlayer==null){
_vlcPlayer=new VlcPlayer(EndReachedAction, PlayingAction, PositionChanged, TimeChanged);
return _vlcPlayer ;
case :"XXX"
if(_XXXPlayer==null){
_XXXPlayer=new XXXPlayer(EndReachedAction, PlayingAction, PositionChanged, TimeChanged);
}
return _XXXPlayer;
default:
return null;
}
}
public static void Dispose(){}
}
}
抽象类与接口的区别:https://www.cnblogs.com/chunhui212/p/5892273.html
相同点:
区别:
使用规则:
接口:
抽象:
原文:https://www.cnblogs.com/qlbky/p/11833846.html