计算亲戚关系,我的 XXX 的 XXX [的 XXX ] 是 YYY。如,我的爸爸的妈妈是奶奶。
我的想法是这样: XXX 限定在哥哥、姐姐、弟弟、妹妹、爸爸、妈妈、丈夫、妻子、儿子、女儿。 YYY 是最后计算的结果,比如姑姑、姑奶奶等。
目前我建立的模型是这样:
class Person {
string current_title; //当前称呼
Person compare; //用于比较大小的对象,比如爸爸的弟弟可能是“伯父”、“叔公”
//下面十个分别代表哥哥、弟弟、姐姐、妹妹、爸爸、妈妈、丈夫、妻子、儿子、女儿
string elder_brother;
string litte_brother;
string elder_sister;
string litte_sister;
string father;
string mother;
string husband;
string wife;
string son;
string daughter;
}
根据当前的current_title不同,后边十个属性分别取不同的称呼。
这样的模型,可以用,但是总感觉这种方法很傻。
求教,这个问题有没有优雅的解决思路。