2010-08-25 44 views
5

Tôi thực sự mới đối với DDD và cố gắng nắm bắt một số khái niệm.Lập mô hình miền, Đối tượng miền trong DDD

Ai đó có thể giải thích cho tôi ý tưởng đằng sau Mô hình miền trong DDD.

Tôi đã trải qua giải thích wikipedia: http://en.wikipedia.org/wiki/Domain_model nhưng vẫn có vẻ như có một số khu vực màu xám trong sự hiểu biết của tôi.

Dựa trên những gì tôi hiểu, mô hình hóa miền liên quan đến việc xây dựng một mô hình xung quanh chủ thể kinh doanh để thể hiện mối quan hệ của họ, thể hiện các đối tượng tham gia vào mô hình vv ..

Không phải là một cái gì đó này đã được trong thực tế luôn luôn? trong Object Oriented world, bạn mô hình các thực thể nghiệp vụ thành các lớp, các đối tượng, vv .. và xây dựng phần mềm xung quanh vấn đề này.

Điều tôi không hiểu là sự nhấn mạnh Mô hình miền nhận được trong DDD. Có cùng một mô hình đối tượng/lớp học mà bạn tìm thấy trong thế giới OO hay là cái gì đó mới mẻ đối với DDD? Nó khác với thiết kế/mô hình hướng đối tượng như thế nào?

Câu trả lời của bạn được đánh giá cao.

Trả lời

6

Một điểm khác biệt là việc triển khai "đúng" Domain Model Pattern trong DDD được phân lập từ các mối quan tâm chéo.

Ví dụ: không có gì liên quan đến cơ sở dữ liệu hoặc sự kiên trì khác. Trường hợp nó chứa logic xác nhận, đó là xác nhận kinh doanh, không phải "có phải tên vượt quá độ dài cột không?" xác thực.

Ý tưởng là mô hình miền đóng gói "doanh nghiệp" - theo nghĩa kinh doanh ("ngôn ngữ phổ biến"), trong phạm vi có thể - và cho thấy các khía cạnh liên quan của doanh nghiệp đối với "chương trình" mà không chấp nhận nhu cầu của phần mềm.

Mặt khác, "phần mềm" có liên quan với IO, giao diện người dùng và các loại tương tự, nhưng ủy quyền tất cả logic nghiệp vụ cho mô hình miền.

Về nguyên tắc, bạn có thể bao bọc mô hình miền của mình trong một hội đồng và sử dụng nó trên nhiều ứng dụng. Khi quy tắc kinh doanh thay đổi, như họ làm, bạn có một nơi rất hợp lý để ảnh hưởng đến các thay đổi (bởi vì mô hình là biểu diễn 1: 1 hoặc gần như vậy về các khía cạnh liên quan của doanh nghiệp và được mô tả trong cùng các điều khoản như kinh doanh).

1

Miền trong DDD không cần phải được triển khai trong OO. Theo kinh nghiệm của tôi, một mô hình miền OO thường là tốt nhất, nhưng có những ví dụ rất hợp lệ về các tình huống mà nó có thể không có.

Bạn có thể triển khai miền trong quy tắc, với công cụ quy tắc (ví dụ ở Hà Lan, nơi điều này được thực hiện cho một ứng dụng thế chấp lớn). Hoặc bạn có thể làm điều đó bằng một ngôn ngữ chức năng. Bản chất là tên miền của bạn, tuy nhiên, nó được phân lập từ những gì tôi thường gọi là các khía cạnh kỹ thuật của ứng dụng của bạn (hoặc, như câu trả lời trước đó gọi nó là mối quan tâm xuyên suốt, mặc dù tôi nghĩ có thể các mối quan tâm chéo trong một miền). Một lớp cô lập, có thể được thực hiện bằng cách sử dụng bộ điều hợp, làm cho miền càng nhiều càng tốt, thậm chí hoàn toàn, độc lập với các kỹ thuật. Lớp này thường tận dụng các mẫu như Facade và Observer.

Các vấn đề liên quan