클래스의 인스턴스가 오직 하나만 존재하도록 보장하고, 그 인스턴스에 전역 접근점을 제공하는 패턴입니다. "new"를 아무리 많이 호출해도 항상 같은 객체를 반환합니다.
객체 생성 로직을 클라이언트로부터 분리하여 팩토리 클래스에 위임하는 패턴입니다. 클라이언트는 구체적인 클래스를 알 필요 없이 공통 인터페이스를 통해 객체를 요청합니다.
객체 간의 일대다(1:N) 의존 관계를 정의합니다. 퍼블리셔(Publisher)의 상태가 변경되면, 구독 중인 모든 서브스크라이버(Subscriber)에게 자동으로 통지됩니다.
알고리즘의 군(族)을 정의하고 각각을 캡슐화하여 런타임에 교환 가능하게 만드는 패턴입니다. 조건문 분기를 없애고 동작을 유연하게 변경할 수 있습니다.
UI와 비즈니스 로직을 분리하는 아키텍처 패턴들입니다. 관심사 분리(Separation of Concerns)를 통해 코드의 유지보수성과 테스트 가능성을 높입니다.