현대 건축에서의 입면 디자인 모델++
10135 단어 designtutorialcomputersciencecpp
/!\: This article has been originally published on my blog. If you are interested in receiving my latest articles, please sign up to my newsletter.
우리가 계속하기 전에, 나는 Facade의 맞춤법, 즉 'Façade' 를 바로잡을 것이다. & 그것의 발음은 'Fa;sa;d' 이다.대부분의 유럽 언어에서 알파벳 C 아래에 붙인 갈고리나 꼬리를 Acedilla라고 하는데 이 알파벳의 발음 변화를 나타내는 데 쓰인다.우리는 그것을 상세하게 토론하지 않을 것이다. 그렇지 않으면 우리는 문제를 낼 것이다.
참고로 구조 설계 모델에 관한 다른 글을 아직 읽지 않았다면 다음은 목록입니다.
override
, final
, public
, (while inheritation) 같은 키워드를 사용하지 않는 것을 자주 본다. 단지 하나의 표준 화면 크기에서 코드를 촘촘하고 사용하기 쉽기 위해서이다(대다수 경우).나도 struct
를 더 좋아한다. class
는 때때로 "public:
"를 쓰지 않고 줄을 저장하고 일부러 놓친다virtual destructor, 구조 함수copy constructor, 접두사std::
, 동적 메모리를 삭제한다.나는 또한 내가 실용적인 사람이라고 생각하고 가능한 한 간단한 방식으로 생각을 표현하고 표준적인 방식이나 행화가 아니라 희망한다.참고:
의 의도
To provide unified interface by hiding system complexities.
C 언어의 Facade 디자인 모드 예제++
// Stolen from: https://en.wikibooks.org/wiki/C%2B%2B_Programming/Code/Design_Patterns
struct Alarm {
void alarm_on() { cout << "Alarm is on and house is secured"<<endl; }
void alarm_off() { cout << "Alarm is off and you can go into the house"<<endl; }
};
struct Ac {
void ac_on() { cout << "Ac is on"<<endl; }
void ac_off() { cout << "AC is off"<<endl; }
};
struct Tv {
void tv_on() { cout << "Tv is on"<<endl; }
void tv_off() { cout << "TV is off"<<endl; }
};
struct HouseFacade {
void go_to_work() {
m_ac.ac_off();
m_tv.tv_off();
m_alarm.alarm_on();
}
void come_home() {
m_alarm.alarm_off();
m_ac.ac_on();
m_tv.tv_on();
}
private:
Alarm m_alarm;
Ac m_ac;
Tv m_tv;
};
int main() {
HouseFacade hf;
//Rather than calling 100 different on and off functions thanks to facade I only have 2 functions...
hf.go_to_work();
hf.come_home();
return EXIT_SUCCESS;
}
HouseFacade
에 통합한 것을 주의하십시오.우리는 또한 다중성turn_on()
과 turn_off()
방법을 가진 인터페이스를 사용하여 각자subclasses에 덮어쓰기Ac
, Tv
, Alarm
대상의 집합을 사용하여 Composite Design Pattern를 추가하여 더욱 복잡도를 얻을 수 있다.입면 디자인 모델의 장점
FAQ 요약
Facade는 여러 가지 클래스를 포함하는 클래스입니까?
그래.그것은 응용 프로그램의 많은 하위 시스템의 패키지이다.
무엇이 그것을 하나의 디자인 모델로 만들었습니까?나에게 있어서 이것은 마치 일반적인 수업과 같다.
모든 디자인 모델도 일반적인 유형이다.
입면 디자인 모델의 실제 용례는 무엇입니까?
Facade 디자인 모델의 대표적인 응용 프로그램 중 하나는 Linux나 Windows의 콘솔/터미널/명령 프롬프트가 운영체제에서 제공하는 기계 기능에 접근하는 통일된 방식이다.
어댑터와 입면 디자인 모델 간의 차이는?
Adapter는 여러 클래스를 나타내는 하나의 클래스를 캡슐화합니다.
Reference
이 문제에 관하여(현대 건축에서의 입면 디자인 모델++), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/visheshpatel/facade-design-pattern-in-modern-c-9ca텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)