안녕하세요. 오늘은 자바에서 객체를 생성하는 2가지 방법, 프로토타입 방식과 싱글톤 방식에 대해 알아보도록 하겠습니다.
프로토타입 패턴(Prototype Pattern)
⭐ 매번 새로운 객체 인스턴스를 생성하는 방식입니다.
⭐ 각 객체 인스턴스는 서로 독립적이며 각각의 인스턴스는 별도의 상태를 가질 수 있습니다.
⭐ 프로토타입 패턴을 사용하면 객체를 반복해서 생성할 때 유용하여 객체 인스턴스 간의 상태 공유가 필요하지 않은 경우에 적합합니다.
⭐ 'new' 키워드를 사용하여 객체를 생성하며 생성자를 호출하는 방식으로 객체를 초기화하며, 객체 생성 및 초기화가 단순하고 빠른 경우 'new' 키워드로 객체를 생성하는 것이 효율적입니다.
// Prototype Pattern Example
Rectangle rec1 = new Rectangle(3, 5);
Rectangle rec2 = new Rectangle(10, 20);
서로 다른 크기의 두 개의 사각형 객체를 생성한 코드인데요, 위에서 설명드린 것처럼 서로 다른 상태를 가져야할 때 사용됩니다.
싱글톤 패턴(Singleton Pattern)
⭐ 객체의 인스턴스를 한 개만 생성되게 하는 방식입니다.
⭐ 한 번 생성된 인스턴스를 여러 곳에서 공유하기 때문에 객체의 상태가 모든 사용자에게 동일합니다.
⭐ 주로 공통된 리소스를 관리하거나 설정 데이터와 같은 정보를 중앙에서 관리해야 할 때 사용됩니다.
⭐ 'getInstance()' 메서드를 사용하여 싱글톤 인스턴스를 반환하며, 객체 생성 및 초기화에 복잡한 로직이 필요하거나 초기화가 한 번만 이루어져야 하는 경우 'getInstance()' 메서드를 사용하여 초기화 로직을 관리합니다.
// Singleton Pattern Example
public class Singleton {
private static Singleton instance;
private Singleton() {
// private constructor
// private 접근제한자를 주어 외부에서 직접 객체를 생성할 수 없게 막음!
}
public static Singleton getInstance() {
if(instance == null) {
instance = new Singleton();
}
}
return instance;
}
Singleton obj1 = Singleton.getInstance(); // 싱글톤 인스턴스를 얻음
Singleton obj2 = Singleton.getInstance(); // 동일한 싱글톤 인스턴스를 다시 얻음
프로토타입 방식과 싱글톤 방식 차이점에 대해 요약하자면! 프로토타입 방식은 매번 새로운 객체를 생성하고 각 객체를 독립적으로 다루는 데 사용되며, 싱글톤 방식은 단일 인스턴스를 관리하고 공유하는 데 사용됩니다. 😊
'Languages > JAVA' 카테고리의 다른 글
[JAVA] 객체지향 프로그래밍(OOP)이란? (0) | 2024.12.10 |
---|---|
[JAVA] 스트림(Stream)이란? (개념, 메서드 정리) (0) | 2024.11.04 |
[JAVA] JVM(자바 가상 머신)이란? (역할, 동작 과정, 구성 요소) (0) | 2024.09.23 |
[JAVA] 자바 MD5, SHA-256 단방향 암호화(feat. MessageDigest)(+코드예제) (2) | 2023.11.01 |