Rate this post

Callable Classes trong Dart là một khái niệm quan trọng và mạnh mẽ trong ngôn ngữ lập trình Dart. Điều đặc biệt về Callable Classes là chúng cho phép đối tượng được gọi như một hàm thông qua việc sử dụng cú pháp giống như gọi hàm.

Khi một đối tượng được định nghĩa là một Callable Class, nó có thể được gọi như một hàm thông qua việc sử dụng toán tử “()” với các tham số tương ứng. Điều này giúp đối tượng trở thành một hàm có thể thực hiện các hành động và trả về kết quả.

Xem thêm Class trong Python – OOP trong python

Để định nghĩa một Callable Class trong Dart, bạn cần triển khai phương thức “call()” trên lớp đó. Phương thức “call()” sẽ xác định hành vi của đối tượng khi được gọi như một hàm.

Callable Classes trong Dart mang lại nhiều lợi ích cho việc tổ chức mã và tạo ra giao diện linh hoạt. Chúng cho phép bạn tạo ra các đối tượng có thể được gọi như hàm, giúp tăng tính tái sử dụng mã và tạo ra cấu trúc mã rõ ràng hơn.

Ví dụ, dưới đây là một ví dụ về cách định nghĩa và sử dụng Callable Class trong Dart:

class Calculator {
  int call(int a, int b) {
    return a + b;
  }
}

void main() {
  var calc = Calculator();
  var result = calc(3, 5);
  print(result); // Kết quả: 8
}

Trong ví dụ trên, lớp Calculator được triển khai như một Callable Class bằng cách định nghĩa phương thức “call()”. Khi gọi đối tượng calc như một hàm với các tham số 3 và 5, nó sẽ thực hiện phép cộng và trả về kết quả là 8.

Đây chỉ là một ví dụ đơn giản về Callable Classes trong Dart. Callable Classes mang đến sự linh hoạt và sức mạnh cho việc thiết kế và triển khai mã trong ngôn ngữ Dart.

Ví dụ 1

class Student {  
  String call(String name, int age) {  
              return('Student name is $name and Age is $age');  
  
           }  
}  
void main() {  
   Student stu = new Student();  
   var msg = stu('Sharma',18);     // Class instance called like a function.  
   print('Dart Callable class');  
   print(msg);  
}  

Giải thích:

Trong đoạn mã trên, Chúng tôi đã định nghĩa một hàm call () trong lớp Student nhận hai đối số String name, integer age và trả về một thông báo với thông tin này. Sau đó, chúng ta đã tạo đối tượng của lớp Student và gọi nó giống như một hàm.

Các bài viết liên quan:

var msg = stu('Sharma',18);       

Hãy xem một ví dụ khác –

Ví dụ – 2 Nhiều lớp có thể gọi

class Student {
  String call(String name, int age) {
    return ('Student name is $name and Age is $age');
  }
}

class Employee {
  String call(int empid, int age) {
    return ('Employee id is ${empid} and Age is $age');
  }
}

void main() {
  Student stu = new Student();

  Employee emp = new Employee();

  var msg = stu('peter', 18); // Class instance called like a function.
  var msg2 = emp(101, 32); // Class instance called like a function.
  print('Dart Callable class');
  print(msg);
  print(msg2);
}

Giải thích:

Trong đoạn mã trên, chúng tôi đã định nghĩa hai hàm có thể gọi trong lớp Studentlớp Employee . Hàm call () của lớp Employee chấp nhận hai tham số là String empid và int age. Chúng tôi gọi các thể hiện của cả hai lớp là các hàm có thể gọi được.

var msg = stu('peter',18);    
var msg2 = emp(101,32);  

Xem thêm Internet có nghĩa là gì?

Cách định nghĩa Callable Classes

Để định nghĩa Callable Classes trong Dart, bạn cần triển khai phương thức “call()” trên lớp đó. Phương thức “call()” sẽ xác định hành vi của đối tượng khi được gọi như một hàm. Dưới đây là cách định nghĩa Callable Classes trong Dart:

class CallableClass {
  ReturnType call(ParameterType parameter) {
    // Định nghĩa hành vi khi đối tượng được gọi như một hàm
    // Xử lý logic và trả về kết quả
  }
}

Trong đó:

  • “CallableClass” là tên của lớp Callable Class bạn muốn định nghĩa.
  • “ReturnType” là kiểu dữ liệu mà phương thức “call()” trả về khi đối tượng được gọi như một hàm.
  • “ParameterType” là kiểu dữ liệu của tham số mà phương thức “call()” có thể nhận khi đối tượng được gọi như một hàm.

Sau khi bạn đã định nghĩa Callable Class, bạn có thể tạo đối tượng từ lớp đó và gọi nó như một hàm bằng cách sử dụng cú pháp giống như gọi hàm thông thường.

Dưới đây là một ví dụ minh họa về cách định nghĩa và sử dụng Callable Class trong Dart:

class Greeting {
  void call(String name) {
    print("Hello, $name!");
  }
}

void main() {
  var greeting = Greeting();
  greeting("John"); // Kết quả: Hello, John!
}

Trong ví dụ trên, lớp Greeting được định nghĩa là một Callable Class bằng cách triển khai phương thức “call()”. Khi đối tượng greeting được gọi như một hàm với tham số là “John”, nó sẽ in ra thông báo chào mừng “Hello, John!”.

Đó là cách định nghĩa Callable Classes trong Dart. Callable Classes mang lại sự linh hoạt và khả năng tùy chỉnh hành vi khi đối tượng được gọi như một hàm, mở rộng khả năng sử dụng của các đối tượng trong ngôn ngữ Dart.

Xem thêm Class trong JavaScript: Giới thiệu và ứng dụng

Cách sử dụng Callable Classes

Để sử dụng Callable Classes trong Dart, bạn cần tạo đối tượng từ lớp Callable Class và gọi nó như một hàm bằng cách sử dụng cú pháp giống như gọi hàm thông thường. Dưới đây là cách sử dụng Callable Classes trong Dart:

  1. Định nghĩa Callable Class: Đầu tiên, bạn cần định nghĩa lớp Callable Class bằng cách triển khai phương thức “call()” trên lớp đó. Phương thức “call()” sẽ xác định hành vi khi đối tượng được gọi như một hàm.
class Greeting {
  void call(String name) {
    print("Hello, $name!");
  }
}
  1. Tạo đối tượng và gọi như một hàm: Sau khi đã định nghĩa Callable Class, bạn có thể tạo đối tượng từ lớp đó và gọi nó như một hàm bằng cách sử dụng cú pháp giống như gọi hàm thông thường.
void main() {
  var greeting = Greeting();
  greeting("John"); // Kết quả: Hello, John!
}

Trong ví dụ trên, chúng ta tạo một đối tượng “greeting” từ lớp Callable Class “Greeting”. Sau đó, chúng ta gọi đối tượng “greeting” như một hàm với tham số là “John”. Kết quả sẽ là in ra thông báo chào mừng “Hello, John!”.

Các đối tượng Callable Class có thể nhận các tham số khác nhau tùy thuộc vào cách bạn triển khai phương thức “call()”. Bạn có thể sử dụng Callable Class trong các tình huống mà bạn muốn sử dụng đối tượng như một hàm để thực hiện các hành động cụ thể.

Đó là cách sử dụng Callable Classes trong Dart. Chúng mang lại khả năng gọi đối tượng như một hàm và mở rộng khả năng sử dụng của các đối tượng trong ngôn ngữ Dart.

Đặc điểm và ưu điểm của Callable Classes

Đặc điểm và ưu điểm của Callable Classes trong Dart là:

Đặc điểm:

  1. Gọi đối tượng như một hàm: Callable Classes cho phép bạn gọi đối tượng như một hàm thông qua việc triển khai phương thức “call()”. Điều này mang lại sự linh hoạt và khả năng tương tác với đối tượng dễ dàng hơn.
  2. Tùy chỉnh hành vi: Bằng cách định nghĩa phương thức “call()” trên Callable Class, bạn có thể tùy chỉnh hành vi của đối tượng khi nó được gọi như một hàm. Điều này cho phép bạn xác định các hành động cụ thể và xử lý logic mà đối tượng thực hiện khi được gọi.
  3. Tái sử dụng mã: Callable Classes giúp tăng tính tái sử dụng mã. Thay vì phải viết các hàm tương tự cho các đối tượng khác nhau, bạn có thể tạo Callable Class và sử dụng lại nó cho nhiều đối tượng khác nhau.
  4. Giao diện linh hoạt: Callable Classes cho phép bạn tạo ra giao diện linh hoạt giữa các đối tượng và chức năng. Bạn có thể sử dụng Callable Class để biểu diễn các hành vi tương tự như hàm và truyền chúng như tham số vào các phương thức khác.

Ưu điểm:

  1. Tính mở rộng: Callable Classes cho phép mở rộng khả năng sử dụng của các đối tượng trong Dart. Bạn có thể sử dụng đối tượng như một hàm và tận dụng các tính năng của ngôn ngữ để thực hiện các tác vụ phức tạp hơn.
  2. Mã rõ ràng: Sử dụng Callable Classes giúp tạo ra mã rõ ràng và dễ đọc hơn. Điều này giúp tăng tính đồng nhất và dễ bảo trì của mã nguồn.
  3. Tích hợp tốt: Callable Classes tích hợp tốt với các khía cạnh khác của ngôn ngữ Dart. Chúng có thể được sử dụng trong các khối mã, các cấu trúc điều khiển, hoặc kết hợp với các tính năng khác của Dart như Generics, Mixins, …

Callable Classes là một tính năng mạnh mẽ trong Dart, giúp bạn tăng tính linh hoạt và tái sử dụng mã. Chúng mang lại lợi ích lớn trong việc xây dựng ứng dụng và thiết kế giao diện.

Xem thêm Cài đặt Dart

Trả lời

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *

Contact Me on Zalo
Call now