3티어 아키텍처
전통적인 3티어 아키텍처는 주로 비즈니스 인터페이스 레이어, 비즈니스 로직 레이어, 데이터 액세스 레이어로 나뉜다
비즈니스 인터페이스 레이어: 주로 API 정의, 리소스 경로 정의 포함 및 요청 메시지 수락, 응답 메시지 반환, 요청 인코딩 및 기타 정의된 내용
비즈니스 로직 계층: 주로 비즈니스 로직 처리를 수행합니다. 이 계층에는 DTO에서 VO로의 데이터 매핑, 비즈니스 핵심 로직 작성, 다양한 데이터 웨어하우스 결합 등이 포함됩니다. 비즈니스 로직
데이터 액세스 계층: VO에서 PO로의 데이터 매핑, 데이터 인터페이스 정의 및 매핑 XML 작성을 포함한 데이터 저장을 주로 담당합니다.
DDD 계층 아키텍처
DDD 계층 아키텍처는 주로 사용자 인터페이스 계층, 애플리케이션 계층, 도메인 계층 및 기본 계층으로 구성된 4계층 아키텍처라고도 합니다. 사용자 인터페이스 레이어: 사용자에게 정보를 제공하는 역할을 담당합니다. 사용자, 프로그램, 자동화 스크립트, 배치 스크립트 등과 같은 사용자 지침을 표시하고 해석합니다.
애플리케이션 레이어: 주로 여러 개의 집계된 서비스 및 도메인 개체를 조정하는 데 사용됩니다. 로컬에서 조정하거나 권한 확인, 거래 제어, 이중 지수화 방지 등을 포함한 원격 서비스를 조정할 수 있는 완전한 서비스 조정 및 조합에는 핵심 비즈니스 논리를 여기에 두지 마십시오.
-
도메인 계층: 핵심 구현 집계 루트, 엔터티, 값 개체 및 도메인 서비스를 포함한 논리. 비즈니스 확장 지점, 검증 규칙, 결합된 집계 서비스 및 기타 관련 기능을 포함합니다.
-
기본 레이어: 일부 타사를 포함한 일반 기술 및 기본 서비스를 제공합니다. 도구 클래스, 캐시, 데이터베이스, 파일 등은 종속성 반전 설계를 사용하여 다른 레이어와 분리됩니다.
-
Evolution
- 3계층 아키텍처에서 DDD 아키텍처로의 진화는 주로 논리 계층과 데이터베이스 액세스 계층에서 발생합니다
프런트엔드 데이터의 가용성과 유연성을 높이기 위해 DTO를 추가했습니다.
Three 레이어 아키텍처의 비즈니스 로직 계층을 애플리케이션 계층과 도메인 계층으로 변경하여 비즈니스 로직이 혼동되지 않고 애플리케이션이 프런트 엔드의 변경에 신속하게 대응하도록 합니다.
-
디자인 변경; 기본 계층과 데이터 액세스 계층의 주류 기술 변화에 대응하기 위해 종속성 역전 디커플링을 통해 기본 리소스의 기본 설정을 구현합니다.
-
프로젝트 구조
사용자 인터페이스 계층
어셈블러: DTO와 엔터티 객체 변환 및 데이터 교환, DTO와 동시에 나타남
Dto: 데이터 전송 캐리어, DTO가 전송할 수 있음 외부 세계로부터 격리된 도메인 개체
-
Facade: 대략적인 인터페이스 세분성 정의, 여러 애플리케이션 서비스에 대한 요청 처리
-
Application 레이어
-
event: 두 개의 하위 디렉터리인 게시 및 구독. 여기에는 다양한 분야의 서비스 구독 또는 마이크로서비스 간 구독이 가능합니다.
service: 주로 외부 서비스를 캡슐화, 정리, 캡슐화하여 세분화된 서비스를 제공하는 애플리케이션 서비스입니다. . 또한 비즈니스 논리의 독립적인 부분이기도 합니다
-
도메인 레이어
-
Aggregate: 집계 이름에 따라 이름이 지정된 집계 소프트웨어 패키지의 루트 디렉터리입니다. 여기에는 엔터티, 집계 루트, 엔터티, 값이 포함됩니다. 독립적으로 분해할 수 있는 개체 및 도메인 서비스를 정의할 수 있습니다. 마이크로서비스로 구분됩니다.
엔티티: 집계 루트, 엔터티, 값 개체, 팩토리 모드 관련 코드 및 통합 엔터티 관련 논리를 모두 사용하여 이 클래스에 저장합니다.
-
이벤트: 엔터티 및 이벤트 활동과 관련된 논리 코드 저장
-
서비스: 도메인 서비스, 다양한 엔터티 조합을 기반으로 하는 비즈니스 로직
-
저장소: 집계된 쿼리 및 영구 저장을 위한 코드
-
기본 레이어
-
Config: 주로 springboot 자동 구성 및 통합된 타사 구성 요소 구성과 같은 구성 관련 코드를 저장합니다.
Util: 주로 플랫폼, 개발 프레임워크, 메시지를 저장합니다. , 데이터베이스, 캐시, 파일, 버스, 게이트웨이, 타사 라이브러리 및 일반 알고리즘과 같은 기본 코드의 경우 다양한 리소스 범주에 대해 다양한 하위 디렉터리를 생성할 수 있습니다.
위 내용은 Java 3계층 아키텍처와 DDD 계층적 아키텍처란 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!