2012-03-01 13 views
5

Chúng tôi có vấn đề định kỳ trong cửa hàng của chúng tôi, nơi chúng tôi kết thúc với 3 hoặc 4 đại diện khác nhau của cùng một lớp/pháp nhân.Kiến trúc định hướng mô hình có đáng giá không và trạng thái của nghệ thuật trong công cụ này là gì?

Phiên bản java, phiên bản xml, phiên bản hibernate, phiên bản json ... bạn nhận được điểm.

Rõ ràng điều này tạo ra sự cố bảo trì.

Kiến trúc điều khiển mô hình có lẽ nhiều hơn thế này, nhưng điều tôi thực sự thích là một hệ thống cho phép tôi xác định một lớp hoặc một thực thể một lần, theo một cách, và sau đó tạo ra các biểu diễn khác nhau. (có lẽ tôi không sử dụng thuật ngữ chính xác cho việc này)

Thực sự không phải là điều dễ hiểu, bởi vì chúng ta hãy nói rằng chúng ta có một đối tượng java mà chúng ta muốn chuyển thành JSON để gửi qua dây - có thể không phải là sự tương ứng chính xác 1-1 giữa các thành viên trong đối tượng java với các trường trong JSON - có thể có một số tối ưu hóa hoặc bất kỳ thứ gì.

Tôi đã xem xét những thứ như AndroMDA và EMF trong quá khứ và thấy chúng thiếu hoặc vụng về. Tôi không biết làm thế nào họ ngăn xếp những ngày này, hoặc những gì các hệ thống khác có.

Ý kiến ​​của SO về MDA và lập trình siêu dữ liệu là gì? Các công cụ có đủ trưởng thành để xem xét nghiêm túc không?

Cảm ơn.

+1

Xem thêm http://stackoverflow.com/questions/4479883/mda-model-driven-architecture và http://stackoverflow.com/questions/696021/are-you-doing-mda- model-driven-architecture-right-now-if-so-what-tools-do-yo và http://stackoverflow.com/questions/21091/do-you-use-mda-mdd-mdsd-any-kind- của mô hình-driven-approach-sẽ-it-be-the-futur và http://stackoverflow.com/questions/70781/what-do-you-think-of-model-driven-software-development – DNA

Trả lời

1

Check-out Naked Đối tượng

http://nakedobjects.codeplex.com/

và nó apache tương đương

http://isis.apache.org/index.html

Thực tế là cả hai khung là hầu như không nghe nên trả lời câu hỏi của bạn IMHO. Tôi nghĩ rằng kết thúc với đại diện không phù hợp của các đối tượng tương tự cho thấy một lỗ hổng trong quá trình của bạn, mà không phải là một cái gì đó bạn nên thử và giải quyết với một khuôn khổ.

+3

Câu trả lời này bản lề trên một đối số không được hỗ trợ. –

2

Để giải quyết mối quan tâm cốt lõi của bạn, bạn có thể xác định một lớp Java cho đối tượng miền của bạn. Sau đó, bạn có thể chú thích lớp với chú thích JAXB và Hibernate. Bằng cách này, bạn có một định nghĩa duy nhất về thực thể của bạn (lớp Java) có thể được xuất ra trong các biểu diễn khác nhau, JAXB cho JSON và XML, Hibernate để duy trì.

6

Là người đóng góp cho cả hai Naked ObjectsApache Isis, tôi có thể xác nhận câu trả lời khác từ @ dnellis74 cho rằng cả hai đều giải quyết vấn đề có nhiều lần biểu diễn cùng một điều; với các khung công tác này, bạn viết đối tượng miền của mình một lần và sau đó nó được phản ánh tự động cho người dùng dưới dạng lớp kiên trì.

Tất nhiên, (và tôi sẽ nói điều này, phải không?) Tôi không đồng ý với @ dnellis74 rằng thực tế rằng các khuôn khổ này ít được biết đến có nghĩa là chúng nên được loại bỏ khỏi tầm tay; bạn nên tự quyết định.

Một điểm khác có thể quan tâm; cả hai khung công tác này đều đang trong quá trình triển khai Restful Objects spec, nhằm mục đích tự động hiển thị các đối tượng miền của bạn thông qua API RESTful và cho phép bạn tô màu hoặc tích hợp với nó khi bạn thấy phù hợp. .NET impl là khá hoàn chỉnh, Java impl bị lag một chút nhưng thậm chí có một bản demo mà bạn có thể check out.

Đối với MDA, tôi đã hoài nghi ngay từ đầu khi nó lần đầu tiên được OMG khai thác, đến mức tôi viết article về nó trên TheServerSide. Tôi nghĩ tôi đã gọi nó là đúng.

Dan