Liệu nó có ý nghĩa để sử dụng ORM trong phát triển Android?


27

Liệu nó có ý nghĩa khi sử dụng ORM trong phát triển Android hay là khung được tối ưu hóa cho sự kết hợp chặt chẽ hơn giữa UI và lớp DB?


Bối cảnh : Tôi mới bắt đầu phát triển Android và bản năng đầu tiên của tôi (xuất phát từ nền .net) là tìm kiếm một trình ánh xạ quan hệ đối tượng nhỏ và các công cụ khác giúp giảm clode nồi hơi (ví dụ POJOs + OrmLite + Lombok ).

Tuy nhiên, trong khi phát triển ứng dụng đồ chơi đầu tiên của mình, tôi tình cờ thấy một lớp UI yêu cầu rõ ràng một con trỏ cơ sở dữ liệu : AlphabetIndexer. Điều đó khiến tôi tự hỏi liệu có lẽ thư viện Android không phù hợp để tách lớp UI và DB nghiêm ngặt và tôi sẽ bỏ lỡ rất nhiều tính năng hữu ích, tiết kiệm thời gian nếu tôi cố gắng sử dụng POJO ở mọi nơi (thay vì truy cập cơ sở dữ liệu trực tiếp ).


Làm rõ : Tôi khá nhận thức được những lợi ích của việc sử dụng ORM nói chung , tôi đặc biệt quan tâm đến việc thư viện lớp Android hoạt động tốt như thế nào cùng với nó.

Câu trả lời:


20

Android không chơi độc đáo với các khung khác như có thể. Phong cách phát triển được đề xuất của nó giả định rằng bạn xây dựng mọi thứ từ API của nó mà không cần các thư viện khác. Lớp UI được liên kết rất chặt chẽ với mô hình. Phong cách này là lý tưởng để viết các ứng dụng mô-đun nhỏ hơn, không phải cho các ứng dụng phức tạp.

Bạn cần suy nghĩ xem liệu bạn có muốn bất kỳ chức năng nào của Android hay không; nếu bạn không cần nó, thì bạn không có gì để mất bằng cách sử dụng ORM. Nếu đây không phải là trường hợp, bạn có thể cần phải giải quyết cho một hybrid. Sử dụng ORM cho tất cả những gì bạn có thể, nhưng hãy tự móc vào Cursors và bất kỳ đối tượng cấp thấp nào khác mà bạn yêu cầu. Nếu ORM bạn chọn yêu cầu DAO (tôi không quen thuộc với cái bạn đã đề cập), thì lớp này có lẽ là nơi tốt nhất cho chúng.

Ngoài ra, bạn có thể không cần sử dụng ORM bên ngoài nào cả. Nếu nhu cầu của bạn đơn giản, bạn có thể viết một lớp truy cập dữ liệu đơn giản đáp ứng chúng. Hầu hết các yêu cầu cơ sở dữ liệu ứng dụng là không lớn. Nếu bạn chỉ có một vài bảng, chỉ cần viết một vài lớp truy cập và các đối tượng mô hình và gọi nó là tốt.

YAGNI và KISS là những từ khóa để thành công ở đây. Tôi đề nghị bạn dành một vài ngày tạo mẫu. Đừng ngại ném ra các ứng dụng thử nghiệm đơn giản. Hãy thử tất cả các ý tưởng của bạn một mình, sau đó quyết định xem có hay không tất cả sẽ làm việc cho dự án của bạn.


6

Nó phụ thuộc vào những gì bạn làm với mô hình dữ liệu của bạn. Nếu bạn có mã hiện có để thao tác một mô hình hướng đối tượng và nếu bạn muốn duy trì các đối tượng đó trong cơ sở dữ liệu sqlite, bạn cần một orm.

Nếu bạn đang viết mã Android mới từ đầu, tôi sẽ tránh mô hình dữ liệu trong bộ nhớ trừ khi ứng dụng thực hiện các thao tác OO thực sự phức tạp, ví dụ như chương trình CAD có thể. Tuy nhiên, đối với hầu hết các chương trình, hãy giữ mô hình dữ liệu trong cơ sở dữ liệu và để chuỗi các đối tượng Con trỏ, Bộ điều hợp và Chế độ xem thực hiện nhiều công việc nặng nhọc cho bạn.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.