전략 패턴은 알고리즘을 정의하고 이를 쉽게 교환할 수 있게 하는 패턴입니다. 이를 통해 동일한 문제에 대해 다양한 알고리즘을 적용할 수 있습니다.
옵저버 패턴은 객체 간의 의존성을 느슨하게 만들어주며, 한 객체의 상태 변화가 다른 객체들에게 통지될 수 있게 해줍니다.
데코레이터 패턴은 객체에 추가적인 기능을 동적으로 더할 수 있게 해주는 패턴입니다. 상속을 통해 기능을 확장하지 않고도 유연한 기능 추가가 가능합니다.
팩토리 패턴은 객체 생성을 캡슐화하고, 생성 로직을 클라이언트로부터 분리하여 객체 생성의 유연성을 높여줍니다.
싱글턴 패턴은 어떤 클래스가 오직 하나의 인스턴스만을 갖도록 보장해주는 패턴입니다. 전역 상태나 리소스 공유에 유용합니다.
커맨드 패턴은 요청을 객체의 형태로 캡슐화하여 사용자의 다양한 요청을 처리할 수 있는 구조를 만들어줍니다.
어댑터 패턴은 서로 다른 인터페이스를 갖는 클래스들을 함께 동작시킬 수 있게 맞춰주는 패턴입니다.
퍼사드 패턴은 복잡한 서브시스템을 단순한 인터페이스로 감싸 제공함으로써 사용성을 향상시키는 패턴입니다.
템플릿 메소드 패턴은 알고리즘의 구조를 정의하고, 일부 단계를 서브클래스에서 구현할 수 있게 하는 패턴입니다.
반복자 패턴은 컬렉션의 내부 구조에 상관없이 요소들을 반복적으로 접근할 수 있는 패턴입니다.
컴포지트 패턴은 객체들을 트리 구조로 구성하여 단일 객체와 복합 객체를 동일한 인터페이스로 다룰 수 있게 해주는 패턴입니다.
상태 패턴은 객체의 상태에 따른 행위를 캡슐화하고, 상태 전환을 쉽게 만들어주는 패턴입니다.
프록시 패턴은 실제 객체에 대한 대리자 역할을 수행하며, 객체의 생성 비용이 높을 때나 원격 객체에 접근할 때 사용됩니다.