Android – Các lớp niêm phong trong Kotlin

Tram Ho

I. Giới thiệu

Sealed Classes trong Kotlin là một khái niệm mới mà không có trong Java. Sealed Classes là một phần mở rộng của các class ENUM truyền thống.

A sealed class allows you to represent constrained hierarchies in which an object can only be of one of the given types.

Điều này có nghĩa là, chúng ta có một class với một số lượng cụ thể các subclass. Những gì chúng ta có cuối cùng cũng giống như một Enum. Điều khác biệt là trong enum chúng ta chỉ có một object cho mỗi class, trong khi với sealed classes chúng ta có thể có một số objects của cùng một class. Sự khác biệt này giúp cho phép các objects từ một sealed class sẽ giữ state.

II. Khai báo Sealed classes

Một sealed classes có thể có nhiều subclasses, nhưng tất cả chúng phải được khai báo trong cùng một file với chính sealed classes đó. Ví dụ:

Đoạn code trên dùng giao tiếp từ view model đến fragment

  • Loading: Để biết khi nào bắt đầu và kết thúc call Api để hiển thị hoặc ẩn progress
  • CustomSignal: Sử dụng để gửi như Message hoặc code
  • Failure: Sử dụng để bắn ra lỗi

III. Sử dụng sealed classes

Bây giờ chúng ta đã biết cách tạo sealed classes, đã đến lúc sử dụng nó. Như tôi đã đề cập, tôi đã sử dụng sealed classes ở trên để giao tiếp từ view model đến fragment

Để hiểu biết chi tiết về cách sử dụng sealed classes cần hiểu 2 điều:

  • Data đươc cập nhật ở đâu và như thế nào
  • Data được sử dụng ở đâu và như thế nào

1. Data đươc cập nhật ở đâu và như thế nào?

Trong trường hợp này tôi đã update sealed classes livedata trong viewmodel trước và sau khi gọi api, như sau:

2. Data được sử dụng ở đâu và như thế nào?

Bây giờ cần xem làm sao để sử dụng dữ liệu trong viewmodel:

IV. Tổng kết

Trên đây là bài viết giới thiệu về Sealed classes trong Kotlin.

Thank you for reading.

ref: medium

Chia sẻ bài viết ngay

Nguồn bài viết : Viblo