问题域以大量命名的蛇为特征。有些蛇是boojums。
至少有两种方法可以对此建模:
// 作为属性:
类蛇{
字符串名称;
布尔 is_boojum;
};
// 作为一个列表:
类蛇{
typedef 长 ID;
身份证号码;
字符串名称;
};
树<Snark::Id> boojums;
看起来很直观,如果我们确定 snark 分为男性和女性,我们将在 snark 类定义中添加“sex”属性;如果我们确定除了 5 条蛇以外的其他人都是被征服的臣民,我们就会列出一份皇室成员名单。
是否有可以应用的原则,或者是架构偏好的问题?