Mẫu thiết kế: Mẫu lặp

Tram Ho

I. Giới thiệu:


Iterator là một Design Pattern thuộc loại Behavior. Nó cho phép chúng ta duyệt các phần tử của một collection mà không để lộ các implement chi tiết của nó. Iterator Pattern gồm các thành phần chính như sau:

  • IterableProtocol trong Swift định nghĩa kiểu dữ liệu cho phép truy xuất các phần tử thông qua vòng lặp for.
  • Iterator Object: Object được custom để có thể truy xuất dữ liệu theo kiểu vòng lặp.

II. Cách thức hoạt động:


Iterator Pattern cung cấp cách truy xuất tuần tự vào các phần tử của một collection. Cách truy xuất này sẽ được chúng ta quyết định tùy thuộc vào cấu trúc dữ liệu của collection. Cấu trúc dữ liệu có thể là Array, Tree,… Đồng thời, cách truy xuất dữ liệu của nó sẽ được che giấu đi và không để lộ ra bên ngoài.

III. Iterator Pattern được sử dụng khi nào?


Iterator Pattern được sử dụng khi có một lớp hoặc cấu trúc chứa một nhóm các đối tượng được sắp xếp và muốn truy xuất phần tử bằng cách sử dụng vòng lặp for.

IV. Ví dụ:


Để dễ tiếp cận và hiểu rõ hơn, chúng ta sẽ xử dụng cấu trúc dữ liệu Queue để làm một ví dụ về Iterator Pattern. Queue trong ví dụ sẽ đóng vai trò là Iterator Object.

Thực hiện adopt Sequence protocol để đưa Queue thành dạng Iterator.

Thêm các phần tử vào Queue.

Truy xuất phần tử trong Queue

V. Tài liệu tham khảo:


Chia sẻ bài viết ngay

Nguồn bài viết : Viblo