我目前正在制作一款封闭源游戏,但我想为它提供改装功能。特别是有一个文件StatData.cs,它存储了一个大型的公式和统计字典,我很乐意向mod制作者公开。
这个字典是在StatData构造函数中生成的,这是我想要公开的方法:
public StatData()
{
AddDerivedStatDefinition(
"mass", //Key
"Mass", //Printable Name
"Determines how much stuff there is in the thing", //Printable Description
0, //Lower Limit
float.MaxValue, //Upper Limit
1.0f, //Mutation Rate
delegate(Genome genome, BodyPlan bodyPlan, Phenotype phenotype) //delegate to be stored in DerivedStatDefinition object
{
return bodyplan.Volume * phenotype.Skin.Density; //Formula
}
);
//snipped: 700 lines worth of similar definitions...
}
(注意:bodyplan.Volume
和phenotype.Skin.Density
都是访问器,用于检索在同一构造函数中定义的其他统计信息)
虽然公开描述,限制和变异率很容易(只需从平面文件或通过XML导入它们,而不是硬编码),但公式委托是一个更复杂的问题。
我已经研究过插件体系结构,但我对它有点困惑:我发现的所有示例都是关于导入其他程序集,而不是重写现有程序集中的方法。我希望用户能够修改已定义的公式,而不是导入其他对象。很可能我错过了一些简单的东西,这就是我要问的原因。 :)
公开此代码的推荐策略是什么?
答案 0 :(得分:0)
您是否必须使用简单的界面来实现具有默认实现的策略模式?