Mẫu hành vi

Có sẵn

Trình lặp

Iterator là một mẫu thiết kế hành vi. Đại diện cho một đối tượng cho phép truy cập tuần tự vào các phần tử của một đối tượng tổng hợp mà không cần sử dụng mô tả của từng đối tượng tổng hợp.

Trình lặp

Ví dụ: các phần tử như cây, danh sách được liên kết, bảng băm và mảng có thể được duyệt qua (và sửa đổi) bằng cách sử dụng đối tượng Iterator.

Việc lặp qua các phần tử được thực hiện bởi đối tượng iterator, không phải bởi chính bộ sưu tập. Điều này đơn giản hóa giao diện và triển khai bộ sưu tập, đồng thời thúc đẩy sự phân tách các mối quan tâm hợp lý hơn.

Một tính năng của trình lặp được triển khai đầy đủ là mã sử dụng trình vòng lặp có thể không biết gì về loại tổng hợp lặp.

Cách tiếp cận này được sử dụng rất thường xuyên. Ví dụ, bạn gửi một truy vấn SQL tới cơ sở dữ liệu, và đáp lại nó trả về cho bạn một trình vòng lặp (trong thuật ngữ SQL, nó thường được gọi là con trỏ). Và với sự trợ giúp của trình vòng lặp kết quả, bạn có thể lấy từng hàng một từ phản hồi SQL.

yêu cầu

Lệnh là một mẫu thiết kế hành vi được sử dụng trong lập trình hướng đối tượng đại diện cho một hành động. Đối tượng lệnh chứa chính hành động đó và các tham số của nó.

Yêu cầu

Để gọi một phương thức, bạn thường cần:

  • tham chiếu đối tượng
  • tên phương thức (tham chiếu phương thức)
  • giá trị tham số phương thức
  • tham chiếu đến ngữ cảnh chứa các đối tượng được sử dụng

Tất cả dữ liệu này cần được đóng gói vào một đối tượng - Command ( lệnh ).

Nhưng đó không phải là tất cả: sau tất cả, ai đó phải thực hiện lệnh. Vì vậy, mẫu này bao gồm bốn thực thể nữa: lệnh ( command ), người nhận lệnh ( receiver ), người gọi lệnh ( invoker ) và khách hàng ( client ).

Một đối tượngyêu cầubiết về người nhận và gọi phương thức người nhận. Giá trị tham số máy thu được lưu trữ trong lệnh. Người gọi (người gọi) biết cách thực hiện lệnh và có thể theo dõi các lệnh đã thực hiện. Người gọi (người gọi) không biết gì về một lệnh cụ thể, nó chỉ biết về giao diện.

Cả hai đối tượng (đối tượng gọi và một số đối tượng lệnh) đều thuộc về đối tượng khách. Máy khách quyết định lệnh nào sẽ thực thi và khi nào. Để thực thi một lệnh, nó chuyển đối tượng lệnh tới người gọi (invoker).

Sử dụng các đối tượng lệnh giúp dễ dàng xây dựng các thành phần dùng chung mà bạn cần ủy quyền hoặc thực hiện các cuộc gọi phương thức bất kỳ lúc nào mà không cần phải biết các phương thức lớp hoặc tham số phương thức.

Sử dụng đối tượng người gọi (người gọi) cho phép bạn lưu giữ bản ghi các lệnh đã thực hiện mà không cần khách hàng biết về mô hình kế toán này (ví dụ, việc kế toán như vậy có thể hữu ích để thực hiện lệnh hoàn tác và làm lại).

Ví dụ, bạn đang viết một chương trình cho phép bạn thực hiện các tác vụ khác nhau theo lịch trình. Một mặt, chương trình của bạn theo dõi các tác vụ và quản lý việc khởi chạy chúng, mặt khác, chương trình có thể có một số bộ thực thi, mỗi bộ thực thi có thể thực thi các lệnh thuộc loại riêng của nó. Ví dụ: gửi SMS, gửi thư, gửi tin nhắn Telegram, v.v.

người quan sát

Người quan sát là một mẫu thiết kế hành vi. Thực hiện một cơ chế lớp cho phép một đối tượng của lớp này nhận thông báo về những thay đổi trạng thái của các đối tượng khác và do đó quan sát chúng.

người quan sát

Các lớp mà các lớp khác đăng ký được gọi là Chủ thể các lớp đăng ký được gọi là Người quan sát .

Khi triển khai mẫu Người quan sát, các lớp sau thường được sử dụng:

  • Có thể quan sát - một giao diện xác định các phương thức để thêm, xóa và thông báo cho người quan sát;
  • Người quan sát - giao diện mà qua đó người quan sát nhận được thông báo;
  • ConcreteObservable là một lớp cụ thể thực hiện giao diện Observable ;
  • ConcreteObserver là một lớp cụ thể thực hiện giao diện Người quan sát .

Mẫu Người quan sát được sử dụng khi hệ thống:

  • có ít nhất một đối tượng gửi tin nhắn;
  • có ít nhất một người nhận tin nhắn, số lượng và thành phần của chúng có thể thay đổi trong khi ứng dụng đang chạy;
  • tránh sự kết hợp mạnh mẽ của các lớp tương tác.

Mẫu này thường được sử dụng trong các tình huống mà người gửi thư không quan tâm đến những gì người nhận làm với thông tin được cung cấp cho họ.

Khách thăm quan

Khách truy cập là một mẫu thiết kế hành vi mô tả một thao tác được thực hiện trên các đối tượng của các lớp khác. Khi khách truy cập hoặc thay đổi, không cần thay đổi các lớp dịch vụ.

Mẫu thể hiện kỹ thuật cổ điển để khôi phục thông tin loại bị mất mà không cần dùng đến phương pháp truyền xuống hai lần.

Khách thăm quan

Bạn cần thực hiện một số thao tác ngắt kết nối trên một số đối tượng, nhưng bạn cần tránh làm ô nhiễm mã của chúng. Và không có cách nào hoặc mong muốn truy vấn loại của từng nút và truyền con trỏ tới đúng loại trước khi thực hiện thao tác mong muốn.

Mẫu nên được sử dụng nếu:

  • có nhiều đối tượng thuộc các lớp khác nhau với các giao diện khác nhau, nhưng các thao tác phải được thực hiện trên chúng phụ thuộc vào các lớp cụ thể;
  • trên cấu trúc, cần phải thực hiện các hoạt động khác nhau làm phức tạp cấu trúc;
  • các hoạt động mới trên cấu trúc thường được thêm vào.

người hòa giải

Người hòa giải là một mẫu thiết kế hành vi cho phép nhiều đối tượng tương tác trong khi vẫn duy trì khớp nối lỏng lẻo và tránh việc các đối tượng phải tham chiếu rõ ràng đến nhau.

người hòa giải

Mẫu Người hòa giải cho phép bạn đảm bảo sự tương tác của nhiều đối tượng, đồng thời tạo thành một khớp nối lỏng lẻo và loại bỏ nhu cầu các đối tượng phải tham chiếu rõ ràng đến nhau.

Người hòa giải định nghĩa một giao diện để trao đổi thông tin với các đối tượngĐồng nghiệp, Một người hòa giải cụ thể điều phối hành động của các đối tượngĐồng nghiệp.

Mỗi lớp Đồng nghiệp biết về đối tượng của nóngười hòa giải, tất cả các Đồng nghiệp chỉ trao đổi thông tin với một người trung gian, nếu không có người đó thì họ sẽ phải trao đổi thông tin trực tiếp.

Đồng nghiệpgửi yêu cầu đến Reseller/span> và nhận yêu cầu từ nó. Hòa giải viên thực hiện hành vi hợp tác bằng cách chuyển tiếp từng yêu cầu tới một hoặc nhiềuĐồng nghiệp.

1
Nhiệm vụ
Mô-đun 3,  mức độbài học
Đã khóa
Total Iteration
task4113
1
Nhiệm vụ
Mô-đun 3,  mức độbài học
Đã khóa
Easy-calculator
task4114
1
Nhiệm vụ
Mô-đun 3,  mức độbài học
Đã khóa
You've Got a Discount!
task4115
1
Nhiệm vụ
Mô-đun 3,  mức độbài học
Đã khóa
Wool and Stars
task4116
1
Nhiệm vụ
Mô-đun 3,  mức độbài học
Đã khóa
Greetings in this Chat
task4117
Bình luận
  • Phổ biến
  • Mới
Bạn phải đăng nhập để đăng nhận xet
Trang này chưa có bất kỳ bình luận nào