好的,昨晚之后,我决定改写我的问题以便阅读。 我有2个班级,陆军和战斗群。继承人下面的类,尽管有一些零件丢失:多个班级,相同的公共接口
class Battlegroups
{
private: battlegroup battlegroupobject[100];
public:
void AddBattleGroup(); //add a battlegroup object to the array
void removebattlegroup(); //remove a battle group objects from the array
};
class Army
{
private: battlegroups battlegroupsobject;
public:
void formbattlegroup()
{
battlegroupsobject.AddBattleGroup();
}
void disbandbattlegroup()
{
battlegroupsobject.removebattlegroup();
}
};
见,问题是formbattlegroup()和disbandbattlegroup(),这似乎是它的加入没有意义的接口。
如果有一种方法可以让我访问Addbattlegroup和removebattlegroup()方法而无需执行上述操作,请告诉我。
或者,告诉我这是否是你的做法,但对我来说,它似乎是为了代码而添加代码。
功能名称不同的事实似乎表明它们在您的设计中是*不同的,即使其中一个的实现只是调度到另一个。在未来,您可能想要重构并以其他方式实现它......如果它们在您的设计中相同,为什么名称不同? – 2012-04-21 19:07:16
为了清晰起见,我让它们有所不同,但它们几乎完成相同的功能 – 2012-04-21 19:11:34
我认为,为了清晰起见,让它们变得不同的呼叫说明了给它们命名的理由。 “几乎相同”与“语义相同”有不同的含义。界面应该反映使用情况;如果两个功能的实现类似但其用途不同,那么使用不同名称以避免混淆是有意义的。例如,'replace'函数可能与'find'函数几乎相同,但给它们起同样的名字是没有意义的。 – 2012-04-21 20:44:28