Bridge_Pattern - 8BitsCoding/RobotMentor GitHub Wiki
정의
하고싶은 것이 구현부와 사용부를 나눠서 구현부를 간단한 메모리 변경만으로 바꿔사용하고 싶다.
예시로 설명
int main() {
PrintMorseCode code = new PrintMorseCode(new FlashMCF);
//PrintMorseCode code = new PrintMorseCode(new DefaultMCF);
code->g();
code->a();
code->r();
code->a();
code->m();
}
class MorseCode {
public:
private MorseCodeFunction* function;
public:
MosseCode(MorseCodeFunction* function {
this->function = function;
}
void setFunction(MorseCodeFunction* function) {
this->function = function;
}
void dot() {
function->dot();
}
void dash() {
function->dash();
}
void space() {
function->space();
}
};
class MorseCodeFunction {
public:
virtual void dot();
virtual void dash();
virtual void space();
};
실제 구현은 여기서 함.
class FlashMCF : public MorseCodeFunction {
public:
void dot() {
printf("번쩍");
}
void dath() {
printf("반짝");
}
void space() {
printf("-");
}
};