Design Pattern – Delegation Pattern – Ủy quyền

Design Pattern – Delegation Pattern – Ủy quyền

Là một khái niệm cơ bản của lập trình hướng đối tượng. Thực tế, nó không thực sự là một design pattern, nó là một dạng cơ bản hơn.

Mẫu ủy quyền là một mẫu giúp bạn gián tiếp gọi một phương thức của một lớp. Thường được sử dụng khi bạn muốn phân phối các tính năng tùy theo mục đích cụ thể.

Ví dụ bạn có 2 máy in: PrinterA và PrinterB, printer A để in các tài liệu bình thường. printer B để in các tài liệu quan trọng. Bạn có 2 lớp: PrinterA và PrinterB cùng có phương thức Print.

Khi nào thì print() của A, khi nào của B?

Bạn ủy quyền cho một lớp điều khiển PrintingHandler

Lớp điều khiển này sẽ giúp bạn gọi phương thức của A hoặc B mà không cần lộ hai class này ra (bên gọi hoàn toàn không cần quan tâm đến 2 class A và B)

Mẫu ủy quyền khá giống với mẫu Strategy, Proxy và một vài mẫu khác. Và đừng lo ngại, mẫu ủy quyền là một khái niệm cơ bản nhất và các mẫu khác có thể là một hình thái nào đó của nó với mục đích nhất định.

Ví dụ: Strategy với mục đích ủy quyền thực thi các giải thuật

Ví dụ: Proxy ủy quyền thực hiện nhiệm vụ nào đó và … lưu giữ lại (trong trường hợp đối tượng dữ liệu lớn hoặc quá khó để nhân đôi, hoặc đơn giản là cần được tạo càng ít instance càng tốt (như database connections chẳng hạn).

Bạn thấy bài viết này như thế nào?: 
No votes yet
Ảnh của Khanh Hoang

Khanh Hoang - Kenn

Kenn is a user experience designer and front end developer who enjoys creating beautiful and usable web and mobile experiences.

Bình luận (0)

 

Add Comment

Filtered HTML

  • Các địa chỉ web và email sẽ tự động được chuyển sang dạng liên kết.
  • Các thẻ HTML được chấp nhận: <a> <em> <strong> <cite> <blockquote> <code> <ul> <ol> <li> <dl> <dt> <dd>
  • Tự động ngắt dòng và đoạn văn.

Plain text

  • No HTML tags allowed.
  • Các địa chỉ web và email sẽ tự động được chuyển sang dạng liên kết.
  • Tự động ngắt dòng và đoạn văn.
CAPTCHA
This question is for testing whether or not you are a human visitor and to prevent automated spam submissions.

Advertisement

 

jobsora

Dich vu khu trung tphcm

Dich vu diet chuot tphcm

Dich vu diet con trung

Quảng Cáo Bài Viết

 
Mỗi lần bạn có thể tải các tập tin nặng tối đa 25 MB để chia sẻ.

Facebook thêm tính năng chia sẻ dữ liệu theo nhóm

Mỗi lần bạn có thể tải các tập tin nặng tối đa 25 MB để chia sẻ.

Tại sao website của bạn nên sử dụng HTTPS

Tại sao website của bạn nên sử dụng HTTPS

Does your website offer encrypted HTTPS connections to visitors? Do you use HTTPS by default for administrative logins or lead-generation forms? You may not think you need HTTPS

Sử dụng parallel processing để tiết kiệm time importing databases

Sử dụng parallel processing để tiết kiệm time importing databases

In this article I'll walk through the troubleshooting process I used to improve things, and the approaches I tried

Công ty diệt chuột T&C

 

Diet con trung