의 내가 클래스가 (이름 원이 무작위로했다 아무 의미가 없습니다) 있다고 가정 해 봅시다 : 한편자체 get 메서드가없는 set 메서드를 사용하는 것은 나쁜 습관입니까?
Class circle{
double colorFrequency_;
public:
void setColor(double colorFrequency){ colorFrequency_=colorFrequency; }
void setColor(string colorName){ colorFrequency_=colorNameToFrequency(string colorName); }
double getColorFrequency()
string getColorName(){ /* converts color frequency into a string containing the name of a color it's close to, like "red" */ }
}
를,이 방법이라고 setColor를하지만 getColor에서 호출되지 하나를 가지고 일관성 보이지만, 다른 한편으로 만약에 setColorFrequency와 setColorName이라는 함수를 대신 사용한다면 setColorName은 getColorName의 출력뿐만 아니라 setColorFrequency의 출력에도 영향을 미칠 것이기 때문에 그 이름은 완전히 설명 할 수 없습니다.
getColor라는 함수가 아니라 setColor라는 함수를 사용하는 것이 이상한가요?
나는 당신의 디자인을 존중하는 데 동의하지만,이 경우에는 아무 것도 (표시되지 않음) setColor에서 오버로드를 사용하도록 강요합니다. setColorFrequency와 setColorName도 의미가 있습니다. –
@ Jürgen Strobel setColorFrequency 및 setColorName은 두 개의 다른 * 것들을 업데이트하는 것처럼 들리지만 그렇지 않은 경우에는 소리가납니다. 오버로드가 발생하지 않도록하려면 setColorFromName 또는 setColorFromFrequency를 사용하십시오. –
@pst SetColor (double colorFreq) 및 SetColorFromName (string colorName)은 어떻습니까? 무슨 일이 일어나고 있는지 설명하는 것이 더 분명해 보입니다. – BrandonSun