싱글톤 패턴의 장점: 1. 모든 객체가 고유한 인스턴스에 액세스하도록 보장할 수 있습니다. 2. 클래스가 인스턴스화 프로세스를 제어하므로 클래스는 인스턴스화 프로세스를 유연하게 변경할 수 있습니다. 메모리 비용과 시스템 성능 오버헤드를 줄입니다.
싱글턴 패턴은 디자인 패턴의 가장 간단한 형태 중 하나입니다. 이 패턴의 목적은 클래스의 객체를 시스템의 유일한 인스턴스로 만드는 것입니다. 이를 달성하려면 클라이언트 측에서 인스턴스화하는 것부터 시작합니다. 따라서 객체 클래스의 고유한 인스턴스 생성만 허용하고 생성하려는 객체에 대한 모든 액세스를 "차단"하는 메커니즘을 사용해야 합니다. 인스턴스화 프로세스를 제한하려면 팩토리 메서드를 사용하세요. 이 메서드는 정적 메서드(클래스 메서드)여야 합니다. 클래스의 인스턴스가 또 다른 고유 인스턴스를 생성하도록 하는 것은 의미가 없기 때문입니다.
싱글톤 패턴 동기 부여
시스템의 일부 클래스에서는 인스턴스가 하나만 있는 것이 중요합니다. 예를 들어 시스템에는 여러 개의 인쇄 작업이 있을 수 있지만 작업 작업은 하나만 있을 수 있습니다. 하나의 창 관리자 또는 파일 시스템만 있을 수 있습니다. 시스템은 하나의 타이밍 도구 또는 ID(일련 번호) 생성기만 가질 수 있습니다. 예를 들어 Windows에서는 하나의 작업 관리자만 열 수 있습니다. 창 개체를 고유화하는 메커니즘을 사용하지 않으면 여러 창이 팝업됩니다. 이러한 창에 표시된 내용이 정확히 동일하면 중복 개체이므로 해당 창에 표시된 내용이 일치하지 않으면 메모리 리소스가 낭비됩니다. 이는 특정 순간에 시스템이 여러 상태를 가지게 되어 현실과 일치하지 않으며 어느 것이 실제 상태인지 알 수 없는 사용자에게 오해를 유발할 수도 있음을 의미합니다. 따라서 때로는 시스템에서 개체의 고유성을 확인하는 것이 매우 중요합니다. 즉, 클래스의 인스턴스는 하나만 있을 수 있습니다. [2]
클래스에 인스턴스가 하나만 있고 이 인스턴스에 쉽게 액세스할 수 있도록 하려면 어떻게 해야 합니까? 전역 변수를 정의하면 언제든지 개체에 액세스할 수 있지만 여러 개체를 인스턴스화하는 데 방해가 되는 것은 아닙니다. 더 나은 해결책은 클래스 자체가 유일한 인스턴스를 저장하도록 만드는 것입니다. 이 클래스는 다른 인스턴스가 생성되지 않도록 보장하고 인스턴스에 액세스하는 방법을 제공합니다. 이것이 싱글톤 패턴의 패턴 동기입니다.
싱글턴 패턴의 핵심 포인트
분명히 싱글턴 패턴에는 세 가지 핵심 포인트가 있습니다. 첫째, 클래스는 하나의 인스턴스만 가질 수 있고, 세 번째는 이 인스턴스를 자체적으로 생성해야 합니다. 전체 시스템 자체에 .
구체적인 구현 관점에서 세 가지 점이 있습니다. 첫째, 싱글톤 모드 클래스는 전용 생성자만 제공하고, 둘째, 클래스 정의에는 클래스의 정적 전용 객체가 포함되어 있으며, 셋째, 클래스는 정적 공용 함수를 제공합니다. 자신의 정적 개인 객체를 생성하거나 획득하는 데 사용됩니다.
아래 개체 다이어그램에는 "싱글톤 개체"가 있고 "고객 A", "고객 B" 및 "고객 C"는 싱글톤 개체의 세 가지 고객 개체입니다. 보시다시피 모든 고객 개체는 싱글톤 개체를 공유합니다. 그리고 싱글톤 개체에서 자신으로의 연결선을 보면 싱글톤 개체가 자신에 대한 참조를 보유하고 있음을 알 수 있습니다.
일부 리소스 관리자는 싱글톤 모드로 설계되는 경우가 많습니다.
컴퓨터 시스템에서 관리해야 하는 리소스에는 소프트웨어 외부 리소스가 포함됩니다. 예를 들어 각 컴퓨터에는 여러 대의 프린터가 있을 수 있지만 동시에 두 개의 인쇄 작업이 프린터로 출력되는 것을 방지하기 위해 프린터 스풀러는 하나만 있을 수 있습니다. 같은 시간. 각 컴퓨터에는 여러 개의 팩스 카드가 있을 수 있지만 두 개의 팩스 작업이 동시에 팩스 카드로 전송되는 상황을 방지하려면 하나의 소프트웨어만 팩스 카드 관리를 담당해야 합니다. 각 컴퓨터에는 여러 개의 통신 포트가 있을 수 있으며, 하나의 통신 포트가 동시에 두 개의 요청에 의해 호출되는 것을 방지하기 위해 시스템은 이러한 통신 포트를 중앙에서 관리해야 합니다.
관리해야 하는 리소스에는 소프트웨어의 내부 리소스가 포함됩니다. 예를 들어 대부분의 소프트웨어에는 시스템 구성을 저장하는 하나(또는 여러 개의) 속성 파일이 있습니다. 이러한 시스템에는 속성 파일을 관리하는 개체가 있어야 합니다.
관리해야 하는 소프트웨어의 내부 리소스에는 웹 사이트 방문자 수를 기록하는 구성 요소, 소프트웨어 시스템의 내부 이벤트 및 오류 메시지를 기록하는 구성 요소 또는 성능을 확인하는 구성 요소도 포함됩니다. 시스템 등 이러한 구성요소는 중앙에서 관리되어야 하며 여러 구성요소를 생성할 수 없습니다.
이러한 리소스 관리자 구성 요소에는 하나의 인스턴스만 있어야 하며, 두 개는 자체적으로 초기화해야 하며 세 번째는 전체 시스템이 자체적으로 액세스할 수 있도록 허용됩니다. 따라서 모두 싱글턴 패턴의 조건을 만족하며 싱글턴 패턴을 적용한 것이다.
추천 튜토리얼: "PHP"
위 내용은 싱글턴 패턴의 장점은 무엇인가요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!