1. 싱글톤패턴?
싱글톤패턴은 해당클래스의 인스턴스가 하나만 만들어지고, 어디서든지 그 인스턴스에 접근할수 있도록 허용하는것이다.

2. 예제
Ex)물류창고
물류관리 어플을 생각해볼때 하나의 Company가 필요하게 되고 그 Company에는 운송수단을 가지게된다. 만약 Company를 싱글톤으로 성의하지 않는다면 부주의로 Company가 2개가 생성될수도있고 그렇게되면 각각의 Company에 각각 다른운송수단을 가지게되는 오류를 범할수있다. 이를 막기위해 Company는 하나만생성될수있도록 싱글톤을 정의한다.

- Company클래스의 싱글톤 패턴정의 -

public class Company {   

           private static Company instance = new Company();

           private Company(){}

          

           public static Company getInstance(){

                     if(instance==null)

                                instance=new Company();

                     return instance;

           }

}



생성자를 private로 설정한다는것은 즉 아무나 외부에서 생성자를 호출할수없다는 것이다. 즉, 이말은 외부에서 생성자를통해 Company클래스를 생성할수가 없다는것을 의미한다. 생성자를 private로 설정하기 이전라인에 private static Company instance = new Company();와같이 클래스내에서 인스턴스를 생성하는 문장을 적어주어야한다. 그리고 외부에서 인스턴스를 가져다쓸때에는 public static로 정의된 getInstance()메소드를 이용하여 인스턴스를 호출한다.

- Main함수에서 Company인스턴스 이용-

public static void main(String[] args) {

                     Company c = Company.getInstance();

}




'Developer > Design Patterns' 카테고리의 다른 글

C++ Thread 클래스 구현  (0) 2014.05.17
함수 포인터  (0) 2014.05.17
정적 멤버 함수와 일반 멤버함수  (0) 2014.05.17
thiscall  (0) 2014.05.17
Iterator Pattern  (0) 2012.12.07
Posted by No names
,