내가 일하면서, 우리는이 주제에 대해 여러 번 앞뒤로왔다 갔다하고 온 전성 검사를 찾고있다. 다음은 질문입니다. Business Objects는 데이터 컨테이너 (DTO와 유사) 또는 해당 객체에서 일부 기능을 수행 할 수있는 논리를 포함해야합니까?Business Objects - 컨테이너 또는 기능성?
예 - 고객 개체에 (이름, ID 등) 몇 가지 공통 속성이 포함되어 있는지, 고객 개체에도 함수 (저장, 계산 등)가 포함되어있을 가능성이 있습니까?
한 줄의 추론은 기능 (단일 책임 원칙)에서 개체를 분리하고 비즈니스 논리 계층 또는 개체에 기능을 배치한다고 말합니다.
다른 추리에는 고객 개체가 있으면 Customer.Save를 호출하고 처리하기를 원합니다. 객체를 소비하는 경우 고객을 저장하는 방법에 대해 알아야하는 이유는 무엇입니까?
우리의 마지막 두 프로젝트에는 기능에서 분리 된 개체가 있지만 새로운 프로젝트에서 토론이 다시 제기되었습니다. 어느 것이 더 합리적입니까?
편집
이러한 결과는 우리의 논쟁과 매우 유사하다. 한 쪽 또는 다른쪽으로 한 표결은 방향을 완전히 바꿉니다. 다른 누구도 2 센트를 추가하고 싶습니까? 대답 샘플링이 작은 있는데도
편집
, 대부분은 간단하지만 지속성이 가장 별도의 클래스/계층에 게재되는 비즈니스 오브젝트에서 해당 기능만큼 받아 들일 생각 것으로 보인다. 우리는 이것을 시도 할 것이다. 모든 사람의 의견을 보내 주셔서 감사합니다 ...
당신의 생각은 계산이고 다른 간단한 함수는 객체에 있어야하지만 지속성 (즉, db 트랜잭션)은 다른 곳에 있어야합니다. 나는 그 권리가 있니? – Walter
예, 그게 제가 말하는 것입니다. 물론 그것을 할 수있는 유일한 방법은 아닙니다. 어떤 사람들은 물건을 가지고있는 것을 좋아합니다. 나는 보통하지 않는다. – duffymo
우리는 항상 비즈니스 개체의 모든 기능 또는 없음을 논의했습니다. 이것은 결코 우리가 생각하지 못했던 좋은 타협입니다. – Walter