2012-03-08 3 views
1

이 메타 클래스를 사용하지 않고 싱글 톤 패턴의 직선 앞으로 구현 :Groovy의 Singleton 패턴 구현의 결함입니까?

class A{ 
    static final instance = new A() 
    private A(){} 

    static getInstance(){return instance} 
} 
민간 생성자는 끝내 존경하지 않는이되는 이유는

? 비록 직관적으로 그것이 패턴을 바라 보는 싱글 톤이라고 말할 수 있지만 java와는 달리 프로그래머가 new A()을 사용하여이 클래스의 새로운 인스턴스를 만드는 것을 제한하지 않는다. 따라서 구현시 결함으로 간주해서는 안됩니까?

+3

당신이 [싱글 주석 변환]을 사용 해봤 (HTTP : //mrhaki.blogspot .com/2009/10/groovy-goodness-create-singleton-class.html? m = 1)? –

답변

3

당신이 위의 코드를 대체 할 수

@Singleton 
class A{ 
} 

과를 통해 싱글 인스턴스에 액세스 :

A singleton = A.instance 
1

이것은 현재 Groovy 구현의 버그이므로 Groovy에서는 아무 것도 공개되지 않습니다. 그것의 JIRA issue을보십시오. 나는 또한 그것에 대해 a short article 최근에 썼습니다.