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 |