Value Object & Entity & Domain Service
Entity
Entity에 대해 Value Object와 구별되는 점은 Entity가 유일한 표시를 가지고 실체의 ID라고 볼 수 있고 유일무이하다고 할 수 있지만 나머지 부분은 Entity가 Value Object와 유사하며 구체적으로 코드 형식으로 볼 수 있다.먼저 Entity
class Entity {
constructor(id) {
super();
this.id = id
}
get id() {
return this._id;
}
set id(value) {
this._id = value;
}
}
class Business extends Entity {
constructor(options = {}) {
const {
amount, date, status
} = options;
// id , Entity
super(id);
this.amount = amount;
this.date = date;
this.status = status;
}
get amount() {
return this._amount;
}
set amount(value) {
this._amount = value;
}
get date() {
return this._date;
}
set date(value) {
this._date = value;
}
get status() {
return this._status;
}
set status(value) {
this._status = value;
};
}
먼저 기본적인 속성을 정의하고 Entity에서 ID와 같은 속성을 계승하여 유일무이한 표지로 사용했다. 그 중에서 표지는 대상이 만들어질 때 생성될 수도 있고 대상을 영구화할 때 생성될 수도 있다.
Value Object
우선
Entity
및 Value Object
에 대해 우리는 실체가 아닌 값 대상을 최대한 사용해야 한다.모든 대상을 실체로 만들면 모든 실체의 속성이 데이터베이스에 비치고 모든 속성에 해당하는 setter
및 getter
를 설정하면 매우 복잡하고 시간을 낭비할 수 있다.반대로 값 대상은 창설 대상화 후에 직접 처리할 수 있으며 클라이언트가 값 대상에 대한 수정 문제를 걱정할 필요가 없다.값의 대상에 대해 그것은 영역 내의 어떤 것이 되어서는 안 되고 단지 영역 내의 하나의 개념만을 묘사해서는 안 된다.값 대상이 만들어진 후에 다시 수정하지 말아야 한다. 즉, 값 대상의 불변성이다.간단한 코드에 대해서 말하자면class ValueObject {
constructor() {
super()
}
}
class Business extends ValueObject {
constructor(options = {}) {
const {
amount, date, status
} = options;
// id , Entity
super();
this.amount = amount;
this.date = date;
this.status = status;
}
get amount() {
return this._amount;
}
set amount(value) {
this._amount = value;
}
get date() {
return this._date;
}
set date(value) {
this._date = value;
}
get status() {
return this._status;
}
set status(value) {
this._status = value;
};
}
ID 속성이 없으면 고유한 특성이 없어집니다.
Domain Service
영역 중의 서비스는 무상태의 조작을 나타내며 특정한 영역의 임무를 실현하는 데 쓰인다.집합이나 ValueObject에 작업이 적합하지 않을 때 영역 서비스에 놓아야 합니다.그 중에서 분야 서비스는 업무 서비스가 아니라 업무 서비스가 업무 논리에 처리되지 않고 분야 서비스는 바로 업무 논리를 처리하는 것이다.일부 명확한 무상태 조작은 분야 서비스로 나눌 수 있는데 다음과 같다.
class DomainService {
constructor() {
super()
}
}
class queryService extends DomainService {
static async getTransaction(){
...
}
}
조회 조작은 분야 서비스로 나눌 수 있다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.