2012-06-24 37 views
7

Tôi có một cái gì đó giống như việc thiết lập sau đây trong một Studio C giải pháp Visual # .NET:Tôi có nên tránh các tham chiếu 'chuỗi' trong Visual Studio với các thư viện lớp không?

Dự án 1 - TrainDisplay - một ứng dụng WinForms để hiển thị lượt tàu.

Dự án 2 - TrainFetcher - là thư viện lớp có thể sử dụng lại để tìm nạp dữ liệu về tàu hỏa.

Dự án 3 - TrainsDataModel là mô hình dữ liệu, chứa các lớp chung cho tất cả các dự án khác, ví dụ: Train.cs, TrainRoute.cs, v.v.

đều có tài liệu tham khảo sau đây:

Dự án 1: Tài liệu tham khảo 2 và 3

Dự án 2: Tài liệu tham khảo 3

là nó xấu để sử dụng tài liệu tham khảo theo cách này; tức là dự án 1 kết thúc với hai tham chiếu đến dự án 3; một trực tiếp, và một thông qua dự án 2?

Trả lời

5

Nó không sai, mỗi trình biên dịch sẽ làm The Right Thing®.

Nhưng nó có thể là dấu hiệu của một thiết kế không tuyệt vời.

Cố gắng thiết kế ba lớp trong một cách mà 2 chỉ phụ thuộc vào 3, và đó là 1 chỉ phụ thuộc vào 2.

Sửa: câu cuối cùng là không rõ ràng. Ý tôi là: "thiết kế ba lớp để các đối tượng kinh doanh của bạn chỉ cần tham khảo mã truy cập dữ liệu và giao diện người dùng chỉ giao dịch với các đối tượng kinh doanh".

Cuối cùng, đúng cách để làm điều đó thực sự phụ thuộc vào kiến ​​trúc của bạn (sử dụng ORM vs phát hành truy vấn theo cách thủ công, Active Record vs Mapper và tương tự).

+0

Được rồi, điều đó có vẻ rõ ràng. Nhưng tôi đã tách các lớp đối tượng nghiệp vụ thành thư viện riêng của họ với mục đích tái sử dụng chúng trong một dự án khác. (Windows 8 và Windows Phone 8, FYI) Vì vậy, khi họ đang ở trong một hội đồng riêng biệt để mã mà instantiates họ (một loại 'lớp giữa chia thành hai nửa') sau đó tôi vẫn sẽ cần phải tham khảo chúng từ cả hai đầu và lớp giữa, phải không? –

+0

Đúng, cả lớp DAL và giao diện người dùng vẫn cần phải biết về các đối tượng kinh doanh của bạn. –

+0

Cảm ơn bạn đã làm rõ. –

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