计算亲戚关系,我的 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
不同,后边十个属性分别取不同的称呼。
这样的模型,可以用,但是总感觉这种方法很傻。
求教,这个问题有没有优雅的解决思路。
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.