2009-12-02 27 views
6

Tôi đang trong quá trình thiết kế một phần kiến ​​trúc công ty của mình cho các ứng dụng web Java EE của nó. Tôi khá rõ ràng về lý do sử dụng mặt tiền và một hoặc nhiều DAO. Vấn đề tôi gặp phải là:Mẫu nào vừa vặn giữa mặt tiền và DAO?

Sẽ có một số logic chắc chắn thuộc về tầng tích hợp vì đó là tất cả về cách giữ mô hình dữ liệu nhất quán. Ngoại trừ logic đi xa hơn chỉ đơn giản là duy trì tính toàn vẹn tham chiếu và các nhiệm vụ kiên trì 'thô' khác sẽ được xử lý bởi JPA và Hibernate. Tôi không coi đây là logic kinh doanh vì nó tách biệt với bất kỳ chức năng kinh doanh nào. Tuy nhiên, sự hiểu biết của tôi là một DAO chỉ nên thực hiện logic cần thiết để truy cập và lưu giữ các đối tượng vào nguồn dữ liệu.

Kết luận của tôi là tôi cần mẫu 'giống như đối tượng kinh doanh' thích hợp cho tầng tích hợp. Tôi đã nhìn xung quanh và điều gần nhất tôi đã tìm thấy (nhưng vẫn không hoàn toàn đúng với tâm trí của tôi) là Sun Transfer Object Assembler pattern.

Hoặc có một khoảng trống trong sự hiểu biết của tôi về Java EE hoặc có một mẫu ở đó sẽ phù hợp.

Trả lời

4

có thể là một mediator là những gì bạn muốn:

Xác định một đối tượng mà gói gọn như thế nào một tập các đối tượng tương tác. Người hòa giải khuyến khích ghép nối lỏng lẻo bằng cách giữ cho các đối tượng không liên quan đến nhau một cách rõ ràng, và nó cho phép bạn thay đổi tương tác của họ một cách độc lập.

sau đó bạn có thể sử dụng một DaoMediator để phối hợp hai hoặc nhiều DAO s

+0

Sau khi đọc tất cả các câu trả lời, cảm giác của tôi là một hòa giải viên là cách để giúp chúng tôi. Rất cám ơn các câu trả lời. Họ đều rất thông tin. –

2

Nghe có vẻ như tôi có thể thiếu bộ điều khiển và do đó có thể cần mẫu MVC. Bộ điều khiển sẽ chăm sóc các DAO và trình bày một cái nhìn nhất quán (đừng nghĩ về mặt GUI, burt thay vì một số giao diện khách hàng phải đối mặt). Khi sửa đổi được thực hiện thông qua quan điểm này, sau đó bộ điều khiển phối hợp các thay đổi với mô hình thông qua DAO. Tôi nghi ngờ rằng các đối tượng mặt tiền của bạn có thể là quan điểm trong kịch bản này.

Có nói điều này, tôi sẽ không lo lắng quá nhiều về việc xác định các mẫu cụ thể. Bạn thường thấy rằng có tính đến tất cả các yêu cầu của bạn và tách mối quan tâm nếu có, rằng bạn kết thúc việc triển khai một mẫu cụ thể và chỉ xác định mẫu đó sau khi thực tế.

0

Tôi nghĩ đó là mẫu DataMapper (hoặc Bộ điều hợp) giữa DAL và Lớp doanh nghiệp của bạn, nhưng không có sự hiểu biết cụ thể hơn, tôi không thể chắc chắn.

1

bạn đã xem xét sử dụng cốt liệu từ Domain Driven Design? Tôi là sinh viên của DDD và có vẻ như logic kinh doanh mà bạn đang cố gắng thiết kế có thể được thực hiện bởi các mô hình miền giống như POJO phong phú hơn. Bạn sẽ có mỗi đối tượng miền chịu trách nhiệm về các đối tượng tổng hợp của nó và cũng bao gồm bất kỳ logic nào liên quan đến khái niệm kinh doanh đó; mà nói, lớp tích hợp của bạn sẽ phối hợp các đối tượng phong phú nhưng sẽ kiềm chế không có logic thực sự cho mỗi se (tức là một số logic có điều kiện).

Có lẽ mẫu bạn đang cố gắng tìm thấy thực sự là một bước vào các đối tượng miền phong phú hơn?

0

Điều gì đang thúc đẩy yêu cầu về tính nhất quán giữa các DAO? Nếu có một số giả định kinh doanh đó là dictating mối quan hệ.Ví dụ, bạn có thể có một loại hóa đơn khi nó là 'Vốn' thì chúng ta phải chắc chắn rằng một số đối tượng khác đang ở trạng thái đúng hoặc có tập hợp các giá trị phù hợp. Điều này chắc chắn là bên ngoài lĩnh vực của lớp dữ liệu.

Tôi sẽ không cố gắng tìm ra mô hình hoàn hảo cho trường hợp này. Bạn cần một số loại lớp phối hợp mặc dù, một người hòa giải hoặc bộ điều khiển của một số loại.

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