- vừa được xem lúc

Học OOP cơ bản với Dart - Phần I: Từ khoá abstract

0 0 17

Người đăng: Tuan Lam

Theo Viblo Asia

Lập trình hướng đối tượng (OOP) đóng vai trò quan trọng trong việc phát triển các ứng dụng hiện đại. Trong lập trình hướng đối tượng, chúng ta sử dụng các khái niệm như lớp (class) và đối tượng (object) để thể hiện và quản lý dữ liệu. Một khía cạnh quan trọng khác của OOP là lớp trừu tượng (abstract class).

Để đảm bảo tính thống nhất giữa các lớp có đặc điểm tương tự nhưng cách thức hoạt động khác nhau khi sử dụng lớp trừu tượng. So sánh với việc chỉ sử dụng các lớp thông thường, việc sử dụng lớp trừu tượng mang lại lợi ích bổ sung bằng cách tạo ra một khuôn mẫu chung cho các lớp con, giúp giảm thiểu sự lặp lại trong code, dễ dàng quản lý và bảo trì mã nguồn.

Với ngôn ngữ Dart, lớp trừu tượng có một vai trò quan trọng trong việc xây dựng cấu trúc phân cấp linh hoạt trong chương trình. Chúng cho phép bạn định nghĩa các lớp cơ sở mà chỉ có thể được tạo thông qua các lớp con và chứa các phương thức trừu tượng, getters, hoặc setters. Hãy cùng đi sâu vào khám phá chi tiết về abstract classes trong Dart thông qua các phần sau:

1. Khái niệm về Abstract Classes và Từ khóa "abstract"

Trong Dart, để định nghĩa một lớp trừu tượng, bạn sử dụng từ khóa "abstract" trước từ khóa "class". Điều này thông báo rằng lớp đó là trừu tượng và không thể tạo đối tượng trực tiếp từ nó. Dưới đây là một ví dụ về cách định nghĩa lớp trừu tượng:

abstract class Example {}

2. Các Thành Phần của Lớp Trừu Tượng

Lớp trừu tượng có thể chứa các thành phần như phương thức trừu tượng (abstract methods), getters và setters.

Phương thức trừu tượng là các phương thức chỉ có khai báo mà không có thân hàm (body). Điều quan trọng là từ khóa "abstract" chỉ có thể sử dụng trong định nghĩa của lớp (class). Dưới đây là ví dụ về lớp trừu tượng với phương thức trừu tượng:

abstract class Example { // Đây là một getter trừu tượng int get value; // Đây là một phương thức trừu tượng void processValue();
}

3. Lớp Trừu Tượng và Lớp Con

Nếu một lớp con không ghi đè tất cả các phương thức trừu tượng của lớp cha, thì lớp con đó cũng phải được đánh dấu là trừu tượng. Điều này đảm bảo rằng lớp con cũng không thể tạo đối tượng trực tiếp từ nó.

Một lớp con trở thành một lớp cụ thể (concrete class) khi nó ghi đè tất cả các phương thức trừu tượng của lớp cha và cung cấp định nghĩa cho chúng. Lớp con cụ thể có khả năng tạo đối tượng và sử dụng chúng. Dưới đây là ví dụ:

abstract class Example { void processValue(); int get value;
} abstract class SubExample extends Example {  void processValue() => value * 2;
} class ConcreteExample extends SubExample { // ConcreteExample là một lớp cụ thể  int get value => 20;
}

Trong ví dụ này, ConcreteExample là một lớp cụ thể vì lớp cha của nó (SubExample) đã ghi đè phương thức processValue, và khi nó kế thừa lớp cha, cộng thêm việc ghi đè thuộc tính value còn lại, thì nó được tính là một lớp con cụ thể của class Example.

Để phân biệt giữa lớp con trừu tượng nên mình sử dụng từ khoá: lớp con cụ thể

4. Kết

Trong Dart, lớp trừu tượng (abstract class) là một công cụ mạnh mẽ cho việc quản lý sự phân cấp và trừu tượng hóa trong lập trình hướng đối tượng. Bằng cách sử dụng lớp trừu tượng, bạn có thể xây dựng các cấu trúc phức tạp và định nghĩa giao diện chung cho các lớp con. Điều này giúp bạn tạo ra mã nguồn dễ bảo trì và mở rộng trong dự án phát triển ứng dụng.

Chúng ta đã tìm hiểu về cách định nghĩa lớp trừu tượng bằng từ khóa "abstract," các thành phần bên trong lớp trừu tượng như phương thức trừu tượng, getters và setters. Ngoài ra, chúng ta đã thấy cách lớp con có thể được xây dựng dựa trên các lớp trừu tượng và cách chúng có thể cung cấp định nghĩa cụ thể cho các phương thức và thuộc tính trừu tượng.

Hãy sử dụng lớp trừu tượng để cải thiện cấu trúc của mã nguồn và tạo ra ứng dụng Dart mạnh mẽ và dễ bảo trì. Đối với các dự án phát triển lớn hơn, việc hiểu và sử dụng lớp trừu tượng sẽ là một yếu tố quan trọng trong việc duy trì sự linh hoạt và sáng tạo của bạn.

Bình luận

Bài viết tương tự

- vừa được xem lúc

Học Flutter từ cơ bản đến nâng cao. Phần 1: Làm quen cô nàng Flutter

Lời mở đầu. Gần đây, Flutter nổi lên và được Google PR như một xu thế của lập trình di động vậy.

0 0 281

- vừa được xem lúc

Học Flutter từ cơ bản đến nâng cao. Phần 3: Lột trần cô nàng Flutter, BuildContext là gì?

Lời mở đầu. Màn làm quen cô nàng FLutter ở Phần 1 đã gieo rắc vào đầu chúng ta quá nhiều điều bí ẩn về nàng Flutter.

0 0 214

- vừa được xem lúc

Dart Cheat Sheet - Full bộ "bỏ túi" các syntax trong ngôn ngữ Dart

Dart là một ngôn ngữ mới dùng cho cả Mobile và Web với Flutter Framework, thậm chí dùng cho Backend. Để giúp mọi người dễ dàng nắm bắt ngôn ngữ này hơn, 200lab Education đã tổng hợp thành bộ "bí tịch" dưới đây để tra cứu nhanh, tăng tốc phát triển phần mềm.

0 0 51

- vừa được xem lúc

Học Flutter từ cơ bản đến nâng cao. Phần 2: StatefulWidget vs StatelessWidget. Khi nào thì cần sử dụng cái nào?

Lời mở đầu. Ở bài trước, chúng ta đã dừng lại ở một kết thúc mở.

0 0 96

- vừa được xem lúc

Học Flutter từ cơ bản đến nâng cao. Phần 4: Lột trần InheritedWidget

Lời mở đầu. Trong đoạn kết của phần 2, chúng ta đã đối mặt với 1 bài toán: Làm thế nào để truyền data từ một widget cha nào đó xuống thẳng widget chắt mà không phải sử dụng constructor để truyền xuống

0 0 67

- vừa được xem lúc

Chinh phục RxDart Flutter trong 3 nốt nhạc. Nốt thứ nhất: Stream và giải thích các thuật ngữ

Lời mở đầu. Mình viết series này với mục đích chia sẻ kiến thức về RxDart trong Flutter.

0 0 74