어제 밤, 나는 어제 밤에 더 쉬운 독서를 위해 제 질문을 수정하기로 결정했습니다. 나는 군대와 전투 그룹 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() 메소드에 액세스 할 수있는 방법이 있으면 알려주십시오.
또는이 방법을 사용하는 경우 나에게 말해 주면 코드를 추가하는 것처럼 보입니다.
함수 이름이 다르다는 사실은 하나의 구현이 다른 모듈로 전달되는 경우에도 디자인에서 * different *임을 나타내는 것 같습니다. 앞으로는 리팩토링하고 구현하는 것이 더 좋을 것입니다 ... 디자인에서 동일하다면 왜 다른 이름을 사용합니까? –
나는 그 (것)들을 명확함을 위해 다르게 만들었다, 그러나 거의 동일한 기능을한다. –
나는 명확성을 위해 그 (것)들을 다른시키기의 당신의 외침이 왜 그 (것)들에게 다른 이름을주는 이해되는지 보여준다 생각한다. "거의 똑같은"은 "의미 상으로는 같은"의미와 다른 의미를 지닙니다. 인터페이스는 사용법을 반영해야합니다. 두 기능의 구현이 비슷하지만 목적이 다른 경우 혼동을 피하기 위해 다른 이름을 사용하는 것이 좋습니다. 예를 들어 'replace'함수는 'find'함수와 거의 동일하게 구현 될 수 있지만 같은 이름을 지정하는 것은 의미가 없습니다. –