"빈약한 도메인 모델"의 두 판 사이의 차이

 
(사용자 2명의 중간 판 7개는 보이지 않습니다)
5번째 줄: 5번째 줄:
* 비즈니스 로직(유효성 검사, 연산, 비즈니스 규칙 등)이 거의 없는 도메인 객체들이 있는 도메인 모델
* 비즈니스 로직(유효성 검사, 연산, 비즈니스 규칙 등)이 거의 없는 도메인 객체들이 있는 도메인 모델
* 예: getter/setter만 있는 객체
* 예: getter/setter만 있는 객체
* 풍성한(rich) 도메인 모델의 반대 개념


==예시==
==예시==
{{소스|빈약함}}
{{소스헤더|빈약함}}
<source lang="csharp">
<syntaxhighlight lang="csharp">
class Box {
class Box {
     public int Height { get; set; }
     public int Height { get; set; }
     public int Width { get; set; }
     public int Width { get; set; }
}
}
</source>
</syntaxhighlight>


{{소스|빈약하지 않음}}
{{소스헤더|빈약하지 않음}}
<source lang="csharp">
<syntaxhighlight lang="csharp">
class Box {
class Box {
     public int Height { get; private set; }
     public int Height { get; private set; }
35번째 줄: 36번째 줄:
     }
     }
}
}
</source>
</syntaxhighlight>


==같이 보기==
==같이 보기==
* [[DDD]]
{{z컬럼3|
* [[POJO]]
* [[POJO]]
* [[값 객체]]
* [[값 객체]]
* [[GRASP]]
* [[도메인 모델]]
* [[도메인 모델]]
* [[비즈니스 로직]]
* [[GRASP 정보 전문가]]
* [[도메인 주도 설계]](DDD)
}}


==참고==
==참고==
* {{영어위키백과|Anemic domain model}}
* {{영어위키백과|Anemic domain model}}
* https://docs.microsoft.com/ko-kr/dotnet/standard/microservices-architecture/microservice-ddd-cqrs-patterns/microservice-domain-model
* https://www.martinfowler.com/bliki/AnemicDomainModel.html
* https://docs.microsoft.com/ko-kr/dotnet/standard/microservices-architecture/microservice-ddd-cqrs-patterns/microservice-domain-model 마이크로 서비스 도메인 모델 디자인


[[분류: 소프트웨어 아키텍처]]
[[분류: 소프트웨어 아키텍처]]

2022년 6월 16일 (목) 11:35 기준 최신판

1 개요[ | ]

anemic domain model
빈약한 도메인 모델
  • 도메인 모델에 비즈니스적으로 유의미한 내용을 갖고 있지 않은 객체들
  • 비즈니스 로직(유효성 검사, 연산, 비즈니스 규칙 등)이 거의 없는 도메인 객체들이 있는 도메인 모델
  • 예: getter/setter만 있는 객체
  • 풍성한(rich) 도메인 모델의 반대 개념

2 예시[ | ]

빈약함
class Box {
    public int Height { get; set; }
    public int Width { get; set; }
}
빈약하지 않음
class Box {
    public int Height { get; private set; }
    public int Width { get; private set; }

    public Box(int height, int width) {
        if (height <= 0) {
            throw new ArgumentOutOfRangeException(nameof(height));
        }
        if (width <= 0) {
            throw new ArgumentOutOfRangeException(nameof(width));
        }
        Height = height;
        Width = width;
    }
    public int area() {
       return Height * Width;
    }
}

3 같이 보기[ | ]

4 참고[ | ]

문서 댓글 ({{ doc_comments.length }})
{{ comment.name }} {{ comment.created | snstime }}