Mục lục
Proxy Design Pattern là một mẫu thiết kế ủy quyền. Nó cung cấp một đại diện thay thế cho đối tượng khác để kiểm soát quyền truy cập vào đối tượng đó.
Hiểu đơn giản hơn, thì Proxy Design Pattern như là một đối tượng trung gian. Khi chúng ta muốn thao tác với đối tượng chính đều phải thông qua nó.
Các loại Proxy Design Pattern:
Ví dụ: Ví dụ cụ thể nhất cho Proxy Design Pattern đó chính là việc khi chúng ta rút tiền ở cây ATM.
Khi chúng ta muốn rút tiền ở ngân hàng, thay vì phải đến trực tiếp ở đó, ta có thể đến cây ATM. Khi chúng ta thao tác rút tiền ở cây ATM, nó sẽ liên lạc với ngân hàng và xác nhận mã pin, số tiền cần rút. Nếu mọi thứ đều ổn thì cây ATM sẽ đưa tiền cho chúng ta.
Vì vậy, ngân hàng là đối tượng thực, còn cây ATM là đối tượng thay thế (đối tượng ủy quyền).
Proxy Server chặn tất cả các yêu cầu đến với server thực để xem các yêu cầu này nó có tự thực hiện được hay không. Nếu không nó sẽ chuyển tiếp các yêu cầu đến máy chủ thực.
Proxy Server có hai mục tiêu chính như sau:
Trong phần này mình sẽ thực hiện triển khai Proxy Design Pattern trong C# thông qua một ví dụ cụ thể sau đây.
Như bạn có thể thấy ở hình trên, ở bên phải ta có một máy tính dùng chung có thư mục chia sẻ. Phía bên trái có các nhân viên đang làm việc cho một công ty phần mềm. Trong máy tính có một thư mục dùng chung chứa các thông tin bí mật mà chỉ có Manager và CEO có truyền truy cập. Còn các Developer thì không được phép truy cập vào.
Trong các tình huống như thế này thì chúng ta nên sử dụng Proxy Design Pattern để quản lý một cách dễ dàng.
Mình sẽ thực hiện triển khai ví dụ trên theo từng bước, các bạn theo dõi nhé.
Bước 1: Tạo class Employee.
Trong class có các thuộc tính của một nhân viên như: Username, Password, Role.
Employee.cs
|
Bước 2: Tạo interface ISharedFolder.
ISharedFolder.cs
|
Bước 3: Tạo Real Object (đối tượng thực).
Class này thực hiện interface ISharedFolder.
SharedFolder.cs
|
Bước 4: Tạo Proxy Object (đối tượng thay thế).
SharedFolderProxy.cs
|
Bước 5: Tạo class Program để chạy chương trình và kiểm tra kết quả.
Program.cs
|
Kết quả:
Về bài trước... |
Bài tiếp theo... |
Cờ caro |
Butterfly |
Lật hình (luyện trí nhớ) |
Cờ tướng ONLINE |
Xếp hình |
Ghép hình |
15_PUZZLE |
Kill ghosts |
Banchim |
Planet Defense |
Tower game |
Tower game |
Plapy Bird (NH.Đông) |
Vượt chướng ngại vật |
+ Lê Văn Thuyên-0379136392:Cảm ơn quý vị và các bạn đã vào Website của Lê Thuyên! Lê thuyên rất mong nhận được sự góp ý của quý vị và các bạn cho sự phát triển của website này. Xin chân thành cảm ơn!
* Dũng Trung-090567448:Lê Văn Thuyên0379136392--->Ok.Anh!
* Bé Nguyễn-benguyen@gmail,com:Lê Văn Thuyên0379136392--->Good job!
+ -:
+ -: