JavaRush /Java Blog /Random-KO /Java의 디자인 패턴 [1부]
Ivan Zaitsev
레벨 33
Киев

Java의 디자인 패턴 [1부]

Random-KO 그룹에 게시되었습니다
이것은 Java의 디자인 패턴에 대한 짧은 기사입니다. 패턴 구현은 없으며 Java에 존재하는 패턴 목록과 간략한 내용만 있습니다. 이미 반복과 일반화의 대상이 되고 있는 분들에게 유용할 것입니다. 또는 반대로, 처음으로 패턴에 접근한 사람들을 위해, 더 깊이 파고들기 전에 주제에 대한 첫 번째 개요를 위해. 디자인 패턴 (디자인 템플릿)은 자주 발생하는 프로그래밍 문제에 대한 즉시 사용 가능한 솔루션입니다. 이것은 프로젝트에 연결할 수 있는 클래스나 라이브러리가 아니라 그 이상의 것입니다. 작업에 적합한 디자인 패턴은 각각의 특정 사례에 구현됩니다. 이러한 패턴을 잘못 적용하거나 잘못된 문제에 적용하면 많은 문제가 발생할 수 있다는 점을 기억해야 합니다. 하지만 패턴을 올바르게 적용하면 문제를 쉽고 간단하게 해결하는 데 도움이 됩니다. Java의 디자인 패턴 [1부] - 1패턴 유형 :
  • 생성
  • 구조적
  • 행동
생성 패턴은 초기화 메커니즘을 제공하므로 편리한 방법으로 객체를 생성할 수 있습니다. 구조적 패턴은 클래스와 객체 간의 관계를 정의하여 함께 작동할 수 있도록 합니다. 동작 패턴은 엔터티 간의 상호 작용을 촉진하는 데 사용됩니다. 발전기 :
  • 싱글톤 - 클래스의 인스턴스 하나만 생성하도록 제한하고 해당 클래스의 유일한 개체에 대한 액세스를 제공합니다.
  • Factory - 여러 하위 클래스가 있는 슈퍼 클래스가 있고 입력을 기반으로 하위 클래스에서 하나를 반환해야 할 때 사용됩니다.
  • 추상 팩토리 - 슈퍼 팩토리를 사용하여 팩토리를 만든 다음 생성된 팩토리를 사용하여 개체를 만듭니다.
  • 빌더 - 간단한 개체를 사용하여 복잡한 개체를 만드는 데 사용됩니다. 작고 단순한 물체에서 점차적으로 더 큰 물체를 만들어냅니다.
  • 프로토타입 - 더 나은 성능으로 중복 객체를 생성하는 데 도움이 되며, 새 객체 대신 기존 객체의 반환된 복제본이 생성됩니다.
구조적 :
  • 어댑터는 호환되지 않는 두 개체 사이의 변환기입니다. 어댑터 패턴을 사용하면 호환되지 않는 두 인터페이스를 결합할 수 있습니다.
  • 복합 - 단일 클래스를 사용하여 트리 구조를 나타냅니다.
  • 프록시 - 다른 클래스의 기능을 나타냅니다.
  • 플라이웨이트 - 유사한 개체를 많이 만드는 대신 개체를 재사용합니다.
  • Facade - 클라이언트에게 간단한 인터페이스를 제공하며 클라이언트는 이 인터페이스를 사용하여 시스템과 상호 작용합니다.
  • Bridge - 인터페이스 구현 클래스와 독립적인 구체적인 클래스를 만듭니다.
  • 데코레이터 - 구조를 확정하지 않고 기존 객체에 새로운 기능을 추가합니다.
행동 :
  • 템플릿 방법 - 알고리즘의 기초를 정의하고 후속자가 전체 구조를 변경하지 않고도 알고리즘의 일부 단계를 재정의할 수 있도록 합니다.
  • 중재자 - 서로 다른 클래스 간의 모든 통신을 처리하는 중재자 클래스를 제공합니다.
  • 책임 체인 - 요청을 보낸 사람이 받는 사람에 대해 엄격한 의존성을 피하는 동시에 요청을 여러 개체에서 처리할 수 있습니다.
  • 관찰자 - 일부 개체가 다른 개체에서 발생하는 이벤트를 모니터링하고 반응할 수 있도록 합니다.
  • 전략 - 전략 알고리즘은 프로그램 실행 중에 변경될 수 있습니다.
  • 명령 - 명령 인터페이스는 특정 작업을 수행하는 메서드를 선언합니다.
  • 상태 - 객체는 상태에 따라 동작을 변경할 수 있습니다.
  • 방문자 - 관련 개체 그룹화 작업을 단순화하는 데 사용됩니다.
  • 통역사 - 문제 도메인에 대한 간단한 언어 문법을 정의합니다.
  • Iterator - 기본 표현을 알지 못한 채 컬렉션 개체의 요소에 순차적으로 액세스합니다.
  • Memento (Keeper) - 객체의 상태를 저장하는 데 사용됩니다. 이 상태는 나중에 복원할 수 있습니다.
JavaRush 과정을 수강하는 동안 이 목록에서 몇 가지 패턴을 발견하게 됩니다. 저는 패턴 문제를 추천합니다: 1522 , 1530 , 1631 , big01 , 2912 , 3107 ... 디자인 패턴을 현명하게 사용하면 코드 유지 관리 신뢰성이 높아집니다. 다른 개발자는 특정 코드로 작업할 때 시간을 단축합니다. Java의 디자인 패턴 [2부]
코멘트
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION