앱 전체에서 단일 전역 객체를 공유하는 방법(싱글톤 디자인 패턴)



OOP에서 가장 중요한 기능 중 하나는 단일 클래스를 만들고 인스턴스를 원하는 만큼 인스턴스화할 수 있다는 것입니다.

하지만 클래스를 한 번만 인스턴스화하거나 처리하기 위해 단일 개체만 만들어야 하는 경우에는 어떻게 해야 합니까?

이 시점에서 Singleton을 구현하는 것이 좋은 선택이 될 것입니다.
싱글톤은 다음 객체를 나타낼 수 있습니다.
  • 데이터베이스 연결 개체
  • 현재 로그인한 사용자 개체
  • OTP 개체 프로비저닝

  • 또는 앱에 인스턴스가 하나만 있는지 확인하는 데 필요한 모든 종류의 객체

    구현 방법



    카운터를 만들고 싶고 앱 전체에서 해당 카운터를 사용할 수 있다고 가정해 보겠습니다.

    js에서는 클래스를 먼저 생성하지 않고 직접 객체를 생성할 수 있기 때문에,

    1- 카운터의 현재 값을 보유하고 초기 값을 할당하는 변수를 생성합니다.


    let currentValue = 0

    2- 개체를 만들어 값을 변경합니다.



    js에서는 먼저 클래스를 생성하지 않고 객체를 직접 생성할 수 있으므로 간단한counter 객체만으로도 싱글톤을 구현하기에 충분합니다.

    let currentValue = 0
    const counter = {

    increment(){
    return ++currentValue
    }

    decrement(){
    return --currentValue
    }

    }


    3- 카운터 개체 수정 방지 및 내보내기



    let currentValue = 0
    const counter = {

    increment(){
    return ++currentValue
    }

    decrement(){
    return --currentValue
    }

    }
    Object.freeze( counter )
    export { counter }


    메모


  • 카운터 객체(Singleton)와 함께 const를 사용하여 실수로 재할당하는 것을 방지하고 속성을 추가 또는 제거하거나 속성 중 하나의 값을 변경하는 것을 방지하기 위해 고정합니다.
  • 개체가 참조로 전달되기 때문에 다른 파일에서 개체를 가져올 때마다 동일한 인스턴스를 얻게 됩니다
  • .
  • 카운터 값을 가져오기 위해 getter 메서드를 생성하는 것과 같이 앱의 요구 사항에 따라 더 많은 메서드를 생성할 수 있습니다.

  • 기사가 귀하의 질문에 대한 답변이 되었기를 바라며 다음에 뵙겠습니다.

    감사

    좋은 웹페이지 즐겨찾기