디자인 모델 학습 시리즈의 단례 모델
단일 모델의 중점은 하나의 클래스가 하나의 실례화 대상만 만들 수 있다는 데 있다.이 실례화 대상은 전역적으로 접근할 수 있다.
2. 단일 모델 실현의 핵심 사고방식은 무엇입니까?
실례의 유일성을 유지하기 위해서는 외부에서 구조 함수를 통해 실례를 만들 수 없도록 해야 하기 때문에 구조 함수의 접근 제어 권한을protected 또는private로 정의할 수 있습니다.또한 실례화 대상을 만들 수 있어야 하기 때문에 클래스에 하나의public 방법을 정의하여 실례 대상을 되돌릴 수 있습니다. 이 방법에서 실례 대상의 개수를 검사하고 실례를 만들었으면 바로 되돌려줍니다.만들지 않으면 새로 만들고 실례를 되돌려줍니다.이렇게 하면 하나의 실례를 얻을 수 있을 뿐만 아니라 유일한 실례만 만들 수 있다는 것을 보장할 수 있다.
2. C++로 단일 모드를 실현하는 사례 코드
먼저 헤더 파일 정의하기
#ifndef TRY_TICKET_H
#define TRY_TICKET_H
class Ticket{
public:
static Ticket* getInstance(){
if(m_instance == NULL){
m_instance = new Ticket();
}
return m_instance;
}
private:
Ticket();
private:
static Ticket* m_instance;
};
#endif //TRY_TICKET_H
주 함수 재정의#include
#include "Ticket.h"
using namespace std;
Ticket* Ticket::m_instance = NULL;
Ticket::Ticket() {m_instance = NULL; }
int main(int argc, char* argv[]) {
cout << " " << endl;
Ticket* myTicket1 = Ticket::getInstance();
Ticket* myTicket2 = Ticket::getInstance();
if(myTicket1 == myTicket2){
cout << "myTicket1 myTicket12 " << endl;
}else{
cout << "myTicket1 myTicket12 " << endl;
}
return 0;
}
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.