2009-04-27 6 views
1

템플릿 싱글 톤 클래스처럼 만들 수있는 방법이 있나요? 확장 클래스를 싱글 톤 클래스로 만들면 새로운 싱글 톤 클래스를 빠르게 만들 수 있습니다. 중요한 경우 ActionScript 3.0을 사용하고 있습니다.싱글 톤 클래스를 확장합니까?

감사합니다.

+0

싱글 톤 클래스에 대한 반복 코드를 작성하는 것은 거의 게으르지 않기 때문에 이클립스에서 templateclass를 만들었습니다. 나는 코드를 찾아서 대체 할 수있다. –

답변

7

싱글 톤 패턴은 유형을 상속 받아야하는 방식으로 설계되었습니다. 나는 ActionScript에 익숙하지 않지만 확장 될 수있는 싱글 톤 유형을 갖는 것은 실수처럼 보입니다.

이렇게하면 부모 유형과 하위 유형 모두 단일 인스턴스가 동일한 애플리케이션에로드 될 수 있습니다. 형식은 다형 적으로 형식이 Parent이므로 Parent은 더 이상 단일 요소가 아닙니다.

+0

감사합니다. 나는 다형성 버그를 고려하지 않았습니다. 감사. –

+2

"싱글 톤 패턴은 유형을 상속 받아야하는 방식으로 설계되었습니다." 그건 사실이 아닙니다. 한 번만 인스턴스화되도록 설계되었습니다. – Luke

+2

@ 루크 : 어떻게 하나의 인스턴스 만이 존재할 수 있고 같은 유형이 다른 유형의 기본 클래스가 될 수 있습니까? 이 "싱글 톤"의 자식 유형 인스턴스가 "싱글 톤"의 두 번째 인스턴스가 아니겠습니까? –

4

우선, 충분히 강조 할 수는 없으므로 싱글 톤을 사용하는 것이 Singleton as an antipattern이 아닌지 확인하십시오.

ActionScript에 대해 지능적으로 설명하기에 충분하지 않지만 일반적으로 싱글 톤 인스턴스는 클래스의 정적 변수로 저장됩니다. 즉, 하위 클래스가 부모로부터 정적 변수를 상속받으며 따라서 인스턴스도 상속받습니다. 그래서 염두에두고, 당신은 insta - 싱글 톤을 만들 수 없을 것입니다.

그러나 단 하나의 인터페이스가 모든 싱글 톤에 클린 언로드 등을위한 소멸자와 같은 공통 기능이 필요한 경우라면 할 수 있습니다. 몇 가지) - 윤리 내가 싱글 톤을 사용하는 것이 좋기 때문에 (IMHO) 나에게 말할 수 있을지 확신 할 수 없습니다.

-1

싱글 톤은 다른 클래스와 마찬가지로 클래스에 정의되어 있으므로 원하는만큼 늘릴 수 있습니다 (상속). 싱글 톤의 요점은 이고 인스턴스화 된은 한 번만 상속에 대해 말하지 않습니다.

질문은 편리합니까? 시도하면 기본 클래스에 정의 된 대부분의 동작을 다시 구현 (재정의)해야한다는 사실을 알게 될 것입니다. 새로운 수업을 처음부터 시작할 수도 있습니다. 대신에 필요한 동작을 정의하는 싱글 톤 인터페이스를 만드는 것이 더 좋을 수도 있습니다.

0

flex 프레임 워크는 여러 관리자에게이 패턴을 사용합니다.

mx.core.Singleton의 Flex 코드를 보면 클래스 이름의지도를 해당 클래스의 인스턴스로 유지 관리합니다. 따라서 싱글 톤에 대한 첫 번째 인스턴스가 만들어지기 전에 계층에있는 모든 클래스의 인스턴스를 만들 수 있습니다.

-1

싱글 톤 클래스의 경우 생성자는 개인입니다! 그래서 클래스 X가 private 생성자를 가지고 있다면 클래스 Y에서 서브 클래스하려고하면 컴파일러는 public 가시성이 없기 때문에 X 클래스의 super() 생성자를 호출 할 수 없다고 말할 것입니다. Java에서 우리는 싱글 톤을 sublass 할 수 없습니다./