ОК, после вчерашнего вечера я решил перефразировать мой вопрос для более легкого чтения. У меня есть 2 класса, группы армий и битвы. Heres ниже классы, хотя и с некоторыми частями отсутствуют:несколько классов, тот же общедоступный интерфейс
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(), не делая вышеуказанного, сообщите мне.
или, скажите, если это так, как вы это делаете, но для меня это похоже на добавление кода ради кода.
Тот факт, что имена функций различаются, по-видимому, указывает на то, что они * разные * в вашем дизайне, даже если реализация одного только посылает другому. В будущем вы можете захотеть реорганизовать и реализовать его как-то иначе ... Если они одинаковы в вашем дизайне, почему имена разные? –
Я сделал их разными для ясности, но они в значительной степени выполняют ту же функцию. –
Я думаю, что ваш призыв сделать их разными для ясности показывает, почему имеет смысл давать им разные имена. «Почти то же самое» имеет другое значение для «семантически то же самое». Интерфейс должен отражать использование; если реализация двух функций аналогична, но их назначение отличается, тогда имеет смысл использовать разные имена, чтобы избежать путаницы. Например, функция «replace» может быть реализована почти так же, как функция «найти», но не имеет смысла давать им одно и то же имя. –