Bridge

Khái niệm:

Tách một abstraction khỏi implementation của nó để cả hai có thể thay đổi độc lập nhau.

Mức độ sử dụng: vừa

UML Class Diagram:

bridge_class_diagram

Những lớp và/hoặc đối tượng trong mẫu thiết kế này:

Abstraction (BusinessObject):

     + định nghĩa interface của abstraction

     + bảo trì một tham chiếu đến một đối tượng của Implementor

RefinedAbstraction (CustomersBusinessObject): mở rộng interface được định nghĩa bởi Abstraction.

Implementor (DataObject): định nghĩa interface cho các lớp implementation. interface này không phải tương xứng tuyệt đối với interface của Abstraction; thực sự, 2 interface này có thể khác nhau hoàn toàn. interface implementation chỉ cung cấp các hoạt động ban đầu và Abstraction định nghĩa các hoạt động mức cao hơn dựa trên những hoạt động này.

ConcreteImplementor (CustomersDataObject): thực thi interface của Implementor và định nghĩa implementation tương ứng của nó.

Bridge: khi nào dử dụng và sử dụng ở đâu

Mẫu thiết kế Bridge được sử dụng để tách một abstraction khỏi implementation của nó để cả hai có thể thay đổi đôc lập nhau. Bridge là một trong những mẫu thiết kế cấu trúc mức cao và mục tiêu chính của nó là thông qua abstraction giúp cho các lập trình viên .NET viết code tốt hơn. Một mẫu thiết kế Bridge được tạo ra bằng cách di chuyển một tập các abstract operation sang một interface để cả client và dịch vụ có thể thay đổi mà không phụ thuộc lẫn nhau.

Một ví dụ kinh điển của mẫu thiết kế Bridge là khi code với các trình điều khiển thiết bị (device driver). Một driver là một đối tượng hoạt động đôc lập với một hệ thống máy tính hoặc thiết bị phần cứng bên ngoài. Việc nhận biết các ứng dụng client là abstraction rất là quan trọng. Điều thú vị là mỗi đối tượng driver là một implementation của mẫu thiết kế Adapter. Trong toàn hệ thống, ứng dụng cùng với các driver mô tả cho một đối tượng của Bridge.

Demo

BridgeRealWorldClassDiagram

http://cid-d0e5ddf023bf4324.office.live.com/embedicon.aspx/.Public/Design%20Pattern/BridgeRealWorld.zip

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s