tôi (bây giờ hơn bao giờ hết) thấy các nhà phát triển viết một lượng lớn các lớp như:Giữ mọi thứ được kết hợp lỏng lẻo và có thể mở rộng: Quá nhiều lớp, ROI quá nhỏ?
implementation PresentationLayer ->
interface IMyDTO ->
implementation MyDTO ->
interface IMyService ->
implementation MyService ->
interface IMyDomainRepository ->
implementation MyDomainRepository ->
interface IMyDomainObject ->
implementation MyDomainObject ->
interface IMyIndependentStorageLayer ->
implementation MyMSSQLStorageLayer
Nhìn qua blog C#, điều này dường như là điều tốt nhất kể từ khi bánh mì cắt lát. Về cơ bản, mọi thứ được kết hợp lỏng lẻo. Không sử dụng trực tiếp đối tượng miền. Chạy mọi thứ thông qua một lớp dịch vụ. Truy cập dữ liệu thông qua một kho lưu trữ. Tất cả các lớp là hoàn toàn độc lập.
Đừng làm cho tôi sai, tôi thích ý tưởng, nhưng không phải là thương mại-off trong thời gian rất lớn, đặc biệt là trên một dự án lớn hơn? ROI có duy trì đủ lớn để biện minh cho điều này không?
Các giải thích tôi đọc là loại khó xử, chẳng hạn như "cách này tôi có thể đính kèm cơ sở dữ liệu khác nếu tôi cần". Có thật không? Tôi không nghĩ rằng đó là một vấn đề phổ biến mà ai đó đột nhiên yêu cầu chuyển từ MSSQL sang Oracle và bây giờ bạn ngồi đó và chúc bạn có một triệu lớp mà tất cả đều không biết lẫn nhau.
Có xu hướng đi quá mức với khớp nối lỏng lẻo hay tôi chỉ đọc sai blog? Bạn cảm thấy thế nào về điều này, và bạn đã có những trường hợp mà bạn thực sự vui vì sau đó bạn đã làm thêm công việc ngay từ đầu?
Hầu hết thời gian bạn sẽ không biết mặc dù những gì hóa ra có thể sử dụng lại sau này? Cho rằng bạn sẽ phải biết những gì bạn sẽ làm việc trên một năm sau đó? – Alex
Đó là một điểm tốt. Khi bạn quyết định sử dụng cấu trúc lớp nhất định, bạn sẽ đặt mã mới ở những nơi có thể sử dụng lại ngay từ đầu. Một dịch vụ có thể được sử dụng bởi nhiều bộ điều khiển, một phương pháp Reposiory có thể được sử dụng bởi nhiều dịch vụ và như vậy. Vì vậy, ngay cả khi nó có thể là công việc khó khăn và đầu cơ khi bạn bắt đầu, một số lợi ích sẽ được ngay lập tức. Đối với tôi, làm cho hệ thống có thể kiểm tra thường là một yếu tố rất lớn trong các quyết định này. Tôi nghĩ rằng nếu bạn có thể loại bỏ sự phụ thuộc vào cơ sở dữ liệu trực tiếp và phần hiển thị của chế độ xem, phần còn lại thường sẽ tắt hoàn toàn đúng. –