CÁC GIẢI PHÁP LẬP TRÌNH C# - Trang 646

646
Chương 16: Các giao diện và mẫu thông dụng

// để thông báo với tất cả các observer về thay đổi này.

public int Temperature {

get { return temperature; }

set {

// Tạo một đối tượng đối số sự kiện mới để chứa

// nhiệt độ cũ và mới.

TemperatureChangeEventArgs e =

new TemperatureChangeEventArgs(temperature, value);

// Cập nhật nhiệt độ hiện tại.

temperature = value;

// Dựng nên sự kiện thay đổi nhiệt độ.

RaiseTemperatureEvent(e);

}

}

}

Với mục đích minh họa mẫu Observer, ví dụ này có hai kiểu observer:

TemperatureAverageObserver

(hiển thị nhiệt độ trung bình mỗi khi một sự kiện thay đổi nhiệt

độ xảy ra) và

TemperatureChangeObserver

(hiển thị thông tin về sự thay đổi mỗi khi một sự

kiện thay đổi nhiệt độ xảy ra). Dưới đây là mã lệnh cho hai lớp này:

// Observer hiển thị thông tin về sự thay đổi nhiệt độ

// khi có một sự kiện thay đổi nhiệt độ xảy ra.

public class TemperatureChangeObserver {

// Phương thức khởi dựng (nhận một tham chiếu đến đối tượng

// Thermostat cần được TemperatureChangeObserver giám sát).

public TemperatureChangeObserver(Thermostat t) {

// Tạo một thể hiện ủy nhiệm TemperatureEventHandler và

// đăng ký nó với Thermostat đã được chỉ định.

t.TemperatureChange +=

new TemperatureEventHandler(this.TemperatureChange);

}

Liên Kết Chia Sẽ

** Đây là liên kết chia sẻ bới cộng đồng người dùng, chúng tôi không chịu trách nhiệm gì về nội dung của các thông tin này. Nếu có liên kết nào không phù hợp xin hãy báo cho admin.