디자인 패턴은 반복적인 소프트웨어 설계 문제를 해결하기 위한 재사용 가능한 솔루션입니다. 자바 개발에서 디자인 패턴은 코드의 유지보수성, 확장성 및 재사용성을 향상시키는 데 중요한 역할을 합니다. 이 글에서는 자바에서 널리 사용되는 몇 가지 주요 디자인 패턴을 살펴보겠습니다.
싱글톤 패턴 (Singleton Pattern)
- 개요: 싱글톤 패턴은 클래스의 인스턴스가 하나만 생성되도록 보장합니다.
- 사용 사례: 데이터베이스 연결 객체, 로그 기록 객체 등.
1
2
3
4
5
6
7
8
9
10
11
12
|
public class Singleton {
private static Singleton instance;
private Singleton() {}
public static Singleton getInstance() {
if (instance == null) {
instance = new Singleton();
}
return instance;
}
}
|
cs |
팩토리 메소드 패턴 (Factory Method Pattern)
- 개요: 객체 생성을 서브클래스에 위임하여 객체 생성을 캡슐화합니다.
- 사용 사례: 다양한 타입의 객체를 생성해야 할 때.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
|
public abstract class Animal {
public abstract String makeSound();
}
public class Dog extends Animal {
@Override
public String makeSound() {
return “Bark”;
}
}
public class AnimalFactory {
public static Animal getAnimal(String type) {
if (“dog”.equalsIgnoreCase(type)) {
return new Dog();
}
// 다른 동물 타입 처리
return null;
}
}
|
cs |
옵저버 패턴 (Observer Pattern)
- 개요: 객체의 상태 변경을 관찰하는 관찰자 목록에 자동으로 알림을 보냅니다.
- 사용 사례: 이벤트 핸들링 시스템, 데이터 변경 감지.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
|
public interface Observer {
void update(String message);
}
public class Subject {
private List<Observer> observers = new ArrayList<>();
public void addObserver(Observer observer) {
observers.add(observer);
}
public void notifyObservers(String message) {
for (Observer observer : observers) {
observer.update(message);
}
}
}
|
cs |
자바에서 디자인 패턴을 적용하면 소프트웨어의 설계가 더욱 견고하고 유연해집니다. 싱글톤, 팩토리 메소드, 옵저버 패턴 외에도 많은 디자인 패턴이 있으며, 각각의 패턴은 특정 문제를 해결하는 데 최적화되어 있습니다.
. 자바 디자인 패턴, 디자인 패턴 예제, 싱글톤 패턴 자바, 자바 팩토리 메소드, 자바 옵저버 패턴