주다람
개미는 뚠뚠🎵 오늘도 뚠뚠🎵 열심히 개발하네✨
주다람
전체 방문자
오늘
어제
  • 분류 전체보기
    • 💭 기록해보자
      • BackEnd
      • FrontEnd
      • 회고
    • 💻 수업정리 (2020)
      • 오라클
      • 자바
      • CSS & HTML
      • JavaScript
      • Servlet
      • JSP
    • 📚 알고리즘
      • DP(다이나믹 프로그래밍)
      • 탐색(BFS,DFS)
      • 다익스트라
      • 순열과 조합
      • 백트래킹
      • 이분탐색(binarySearch)
      • 탐욕(Greedy)
      • 스택,큐,덱(Stack,Queue,Deque)
      • 유니온파인드(Union-Find)

블로그 메뉴

  • 홈

공지사항

인기 글

태그

  • 함수
  • background-gradient
  • 문자함수
  • 날짜함수
  • 일반함수
  • 오라클
  • oracle
  • 박스모델
  • 숫자함수
  • 변환함수
  • group by
  • 그룹함수

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
주다람

개미는 뚠뚠🎵 오늘도 뚠뚠🎵 열심히 개발하네✨

[5/21] 싱글톤 패턴
💻 수업정리 (2020)/자바

[5/21] 싱글톤 패턴

2020. 6. 27. 01:40

singletone 패턴이란?

: 프로그램에 인스턴스를 하나만 제공하기 위한 클래스를 만드는 것

 

1. Singletone.java

1) 정적 필드를 생성한다

private static Singletone _instance;

  • private로 만드는 이유 : 접근하지 못하도록 하기 위해서
  • static으로 하는 이유 : 이 클래스 내에서만 사용되게 하기 위함
  • 보통 변수이름 앞에 _(언더바)를 이용하여 지어준다.(이렇게 만들면 setter,getter메소드를 만들지 말라는 개발자들의 규칙이라고 한다)
//싱글톤 디자인 패턴을 적용하여 작성한 클래스 - 싱글톤 클래스
//->프로그램에 인스턴스를 ★하나만★ 제공하기 위한 클래스
public class Singletone {

    //현재 클래스의 인스턴스를 정보를 저장하기 위한 필드선언
    //시스템필드(클래스 내부에서만 사용하는 필드)는 언더바로 표현 -> setter getter메소드를 만들지 말라는 뜻임
//    private static Singletone _istance = new Singletone(); -> 별로 권장하지 않는 방법임
    private static Singletone _instance; //클래스가 로드되면서 이 필드가 생성됨

    //정적영역(Static Block) : 클래스가 메모리에 로딩된 후 자동실행될 수 있도록 하는 영역
    //->여기에서 초기화 작업을 할 수 있음
    //-> 정적영역의 명령은 단 한번만 실행된다.
    static {
        //이렇게 영역을 만들면 다양하게 초기화가 가능함
        _instance = new Singletone(); //인스턴스가 만들어져 저장되어짐
    }

    //생성자를 은닉화 처리 - 인스턴스 생성불가함
    private Singletone() {
        // TODO Auto-generated constructor stub
    }

    //시스템필드에 저장된 인스턴스 정보를 반환하는 메소드다
    public static Singletone getInstance() {
        //static 영역을 쓰지 않고 아래와 같은 방법도 있다.(하지만 자바에서는 static영역을 만드는 것이 나음)
        /*if(_instance == null)
         *         _instance = new Singletone();
         * */
        return _instance;//여기서 이제 인스턴스를 반환하게 됨
    }
    public void display() {
        System.out.println("Singletone 클래스의 display()메소드를 호출합니다.");
    }

}

 

2. SingletoneApp.java

: 참조변수를 이용해 객체를 만들지 않는 것을 권장한다
why? 여러개의 객체를 만들어도 어차피 하나의 인스턴스만 반환되게 할 것이므로

따라서 아래와 같은 방법으로 인스턴스를 호출한다.

Singletone.getInstance().display();

저작자표시 (새창열림)

'💻 수업정리 (2020) > 자바' 카테고리의 다른 글

[6/11] 소켓통신을 이용한 채팅프로그램 만들어보기  (0) 2020.06.11
[6/10] 네트워크  (0) 2020.06.10
[6/9] 파일처리 - 텍스트를 이용하여 파일저장, 출력 응용  (0) 2020.06.09
[6/8] java.io패키지  (0) 2020.06.08
[6/4] 버튼입력받아 계산기 만들기  (0) 2020.06.04
    '💻 수업정리 (2020)/자바' 카테고리의 다른 글
    • [6/11] 소켓통신을 이용한 채팅프로그램 만들어보기
    • [6/10] 네트워크
    • [6/9] 파일처리 - 텍스트를 이용하여 파일저장, 출력 응용
    • [6/8] java.io패키지
    주다람
    주다람
    신입 어린이 -> 주니어개발자 성장중

    티스토리툴바