您的位置:首页 > 其它

一个通用高自由度技能系统的设计(二) Data基类设计

2016-07-21 10:04 344 查看
任何系统设计都需要进行分层设计,首先我们先设计数据层。数据层由抽象基类派生出不同数据类。

这些基类用于存储技能的一些基础数据,后面放置到技能类当中用于逻辑运算

技能系统Data类基类设计:

public class BaseData
{
public BaseData()
{
}

public virtual BaseData Clone()
{
BaseData data = new BaseData();
CopyTo(data);
return data;
}

protected virtual void CopyTo(BaseData destinationData)
{
}
}


ConditionData数据类都是由ConditionData基类派生而出的。

ConditionData基类:

public class ConditionData : BaseData
{
public ConditionData()
{
}

public virtual ConditionType GetDataType()
{
return ConditionType.DEFAULT;
}

public override BaseData Clone()
{
ConditionData data = SkillConditionFactory.CreateSkillConditionData(GetDataType());
CopyTo(data);
return data;
}

}


CommandData基类:

public class CommandData : BaseData
{
public CommandData()
{
}

public virtual CommandType GetDataType()
{
return CommandType.COMMAND_DEFAULT;
}

public override BaseData Clone()
{
CommandData data = CommandFactory.CreateCommandData(GetDataType());
CopyTo(data);
return data;
}

}


TargetPickerData基类:

public class TargetPickerData : BaseData
{
public int TargetMaxNum = 0;

public TargetPickerData()
{
}

public virtual TargetPickerType GetDataType()
{
return TargetPickerType.TARGET_PICKER_DEFAULT;
}

public override BaseData Clone()
{
TargetPickerData data = TargetPickerFactory.CreateTargetPickerData(GetDataType());
CopyTo(data);
return data;
}

protected override void CopyTo(BaseData destinationData)
{
base.CopyTo(destinationData);

TargetPickerData data = (TargetPickerData)destinationData;
data.TargetMaxNum = TargetMaxNum;
}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: