我正在使用代码生成来生成与某个数据库中的表定义相对应的接口。
由于数据库非常混乱,我得到了大约500个接口(对应于500个表),每个接口都有自己的定义。
一些接口可以相互继承,而对于一些接口,可以提取公共接口以最小化代码定义。例如:
interface One
{
int FirstField { get; set; }
bool SecondField { get; set; }
DateTime ThirdField { get; set; }
}
interface Two
{
int FirstField { get; set; }
DateTime ThirdField { get; set; }
double FourthField { get; set; }
}我想在代码上执行某种最小化,以使生成的代码数量最少(通过多重继承和公共代码提取)。从上面的示例中,我需要获得如下内容:
interface OneTwoCommon
{
int FirstField { get; set; }
DateTime ThirdField { get; set; }
}
interface One : OneTwoCommon
{
bool SecondField { get; set; }
}
interface Two : OneTwoCommon
{
double FourthField { get; set; }
}算法的哪个分支处理这些问题?
我从哪里开始查找这些算法呢?
我甚至不知道在Google中写些什么才能得到相关的结果。
发布于 2013-10-22 23:00:39
我想出了一个简单的算法。
初始化:
首先,我们将所有属性按包含它的接口数降序排列到LProperties中(因此最常用的属性将位于顶部)
迭代:
中删除P2
迭代:
中删除
https://stackoverflow.com/questions/19175988
复制相似问题