디자인 모델 학습 시리즈의 단례 모델

1377 단어
1. 단례 모델은 무엇입니까?
단일 모델의 중점은 하나의 클래스가 하나의 실례화 대상만 만들 수 있다는 데 있다.이 실례화 대상은 전역적으로 접근할 수 있다.
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;
}

좋은 웹페이지 즐겨찾기