공부합시다/DesignPattern

공부합시다/DesignPattern

[Design Pattern] 싱글톤(Singleton) 패턴

싱글톤(Singleton) 패턴이란? 시스템에 단 하나의 클래스 인스턴스만 존재하도록 하여 인스턴스에 대한 단일 액세스 지점을 제공하고 이에 따라 충돌 및 불일치를 방지한다. 싱글톤 패턴의 장점 글로벌 액세스 클래스에 하나의 인스턴스만 존재하고 시스템의 모든 객체가 싱글톤 클래스의 동일한 인스턴스에 액세스 할 수 있기 때문에, 일관된 동작 및 데이터 공유가 가능하다. 리소스 소비 감소 시스템 전체에서 싱글톤 클래스의 인스턴스가 하나만 생성되기 때문에 사용하는 리소스의 양이 줄어든다. 싱글톤 패턴의 단점 전역 상태 (Global State) 싱글톤 클래스의 인스턴스는 시스템의 모든 개체에서 액세스 및 수정이 가능하기 때문에 잠재적으로 의도하지 않은 동작과 버그가 발생할 수 있다. 긴밀한 결합 싱글톤 패턴은..

공부합시다/DesignPattern

[Design Pattern] 데코레이터(Decorator) 패턴

데코레이터(Decorator) 패턴이란? 전체 클래스나 하위 클래스를 수정하지 않고도 개별 개체에 동작이나 기능을 추가할 수 있도록 한다. 런타임에 개체의 기능을 동적으로 확장하는데 사용한다. 데코레이터 패턴의 장점 확장을 위한 개방 기존 코드를 수정하지 않고 객체의 동작을 동적으로 수정하고 확장할 수 있다. 단일 책임 원칙 객체의 책임을 각각 다른 데코레이터 객체로 분리하여 개체의 동작을 유연하게 관리할 수 있다. 상속보다 구성 부모 클래스에서 동작을 상속하는 대신 새로운 개체에 동작을 추가하기 때문에 유지보수 및 수정에 유연성이 생기고 확장하기 좋다. 간소화된 유지보수 기존의 개체를 수정하지 않고 데코레이터 개체를 사용하여 새로운 동작을 추가할 수 있기 때문에 기존 코드에 영향을 주지 않고 개체의 동..

공부합시다/DesignPattern

[Design Pattern] 옵저버(Observer) 패턴

옵저버(Observer) 패턴이란? 옵저버 패턴은 주제(Subject)와 관찰자(Observer)가 공통 인터페이스를 통해 서로 통신할 수 있도록 함으로써 작동한다. 주제는 관찰자 목록을 유지하고 관심 있는 이벤트나 데이터가 발생하면 인터페이스에서 메소드를 호출하여 각 관찰자에게 알린다. 옵저버 패턴의 장점 유연성 옵저버의 주제(Subject)에 영향을 주지 않고 옵저버를 쉽게 추가하고 제거할 수 있도록 함으로써 시스템 설계에 유연성을 제공한다. 느슨한 결합 옵저버 패턴의 주제(Subject)와 관찰자(Observer)가 서로의 구현 세부 사항을 알 필요없이 공통 인터페이스를 통해 통신하여 개체간의 느슨한 결합을 촉진한다. 따라서, 코드의 다른 부분에 영향을 주지 않고 시스템을 수정하거나 확장하는데 용이..

공부합시다/DesignPattern

[Design Pattern] 스트래티지(Strategy) 패턴

스트래티지(Strategy) 패턴이란? 스트래티지 패턴은 알고리즘을 정의하고 캡슐화 하여 런타임에 상호 교환하여 사용할 수 있도록 한다. 즉, 모듈식으로 접근할 수 있는 방식을 제공함으로서 알고리즘을 사용하는 클라이언트와 독립적으로 알고리즘을 변경할 수 있도록 한다. 스트래티지 패턴의 장점 코드 유연성 및 재사용성 향상 각 알고리즘을 별도의 클래스에 캡슐화하면 기존 기능을 변경하지 않고 새로운 기능의 확장이 가능하기 때문에 보다 안정적이고 확장에 유리하다. 여러 객체간에 알고리즘을 공유하여 사용할 수 있으므로 유지 및 관리 비용이 절감된다. 테스트 및 디버깅 간소화 각 알고리즘은 별도의 클래스로 캡슐화 되어있기 때문에 버그 또는 오류가 발생할 가능성이 줄어든다. 스트래티지 패턴의 단점 메모리 사용량 증가..

Lede_
'공부합시다/DesignPattern' 카테고리의 글 목록