내 가 이해 하 는 디자인 모델: 단일 모델

3106 단어 디자인 모드
단일 모드 (singleton pattern)
단일 모드 가 무엇 인지 4 인방 의 책 에 서 는 이렇게 정의 합 니 다. 하나의 인 스 턴 스 만 있 고 전체 방문 점 을 제공 합 니 다.
한 프로 세 스에 서 이 종 류 는 한 번 만 실례 화 되 고 쉽게 호출 될 수 있다 는 것 을 이해 할 수 있다.
실현:
악 한식: 클래스 를 불 러 올 때 클래스 내부 에서 인 스 턴 스 를 정의 하고 외부 호출 은 정적 함수 에 열 립 니 다.
Lua  :
        (        Lua,     Lua   ,but c++     ,    cocos           。
         lua class       quick-cocos2d-x framework  
        )

local Singleton = class("Singleton")

function Singleton:ctor()
end

function Singlenton:doSomething()
    print("hey, u get me")
end

local instance = Singleton.new()

function Singleton.getInstance()
    return instance
end

Singleton.getInstance():doSomething()

   :
hey, u get me

게으름뱅이 식: 외부 호출 은 정적 함수 에 개방 되 고 호출 할 때 실례 화 되 었 는 지 확인 합 니 다.
local Singleton = class("Singleton")

function Singleton:ctor()
end

function Singlenton:doSomething()
    print("hey, u get me")
end

local instance

function Singleton.getInstance()
    if instance == nil then 
        instance = Singleton.new()
    end
    return instance
end

Singleton.getInstance():doSomething()

   :
hey, u get me

악 한식 과 게으름뱅이 식 을 비교 하면 악 한식 은 여러 번 클래스 를 불 러 올 때 여러 번 초기 화 되 고 게으름뱅이 식 동기 화 처 리 는 속 도 를 낮 출 수 있다.

좋은 웹페이지 즐겨찾기