2012-08-26 3 views
-1

저는 핵심 데이터가있는 객체를 빌드하기 위해 Zend에 모델을 구축하고 있습니다. 필요한 객체를 lazyloaded하고 세션 변수에 저장합니다.사용자 식별을위한 싱글 톤 패턴의 단점?

나는 싱글 톤 패턴을 고려하고 있지만, 단점에 대해 명확하지 않은 부분이 있는지 찾아보십시오. 싱글 톤은 지속되고 글로벌처럼 행동합니다. 그러나 HTTP 환경 (세션 또는 데이터베이스에 저장되어 있지 않은 경우)은 아마도 요청이 지속되는 동안 지속될 것입니다.

사용자를 인증하고 개인 변수에 사용자 ID 등을 저장하고 현재 사용자가 데이터베이스 호출을 저장하는 현재 주소를 저장하는 정보로 저장하려고합니다.

나는 싱글 톤이 세션만큼 지속되고 이후의 각 사용자가 스스로 싱글 톤을 만들 수 있다고 맞습니까?

장단점에 대한 생각.

+0

그리고 그 8 가지 질문에 대한 13 개의 답변! 당신이 사람들에게 당신을 도울 시간을 보내달라고 요청한다면 적어도 그 사람들에게 보상하십시오. – rdlowrey

+0

아 - 그냥 알아 냈어. 화살표를 클릭하십시오 - 죄송합니다 모두 감사에 대한 의견을 게시했다. –

답변

0

귀하의 질문은 분명하지 않지만 각 요청 사이에 싱글 톤이 사라질 것입니다. 클래스의 종류 (패턴) 일 뿐이며, 서버 호출이 사라질 때까지 그것을 유지하지 않으면 사라질 것입니다.

싱글 톤 주위의 단점은 종종 나쁜 디자인을 반영합니다. 싱글 톤은 정적 인 물건을 가져옵니다. 하지만 좋은 OOP 디자인은 사물을 모듈화하여 관리하기 때문에 클래스간에 커플 링이 거의 없어야합니다. 어디에서나 많은 클래스가 사용된다면 잘못된 것이있을 수 있습니다.

TMHO 글로벌 요청 컨텍스트와 사용자 컨텍스트를 유지하기 위해 앱에 하나 또는 두 개의 싱글 톤이있는 경우 TMHO는 괜찮습니다. 열 가지가있는 경우 앱의 일부를 다시 디자인해야 할 수도 있습니다.