2010-07-14 24 views
6

Tôi đang làm việc với một chút mã được cấu trúc như vậy:Làm cách nào để thiết lập Đại biểu giữa các lớp học của tôi?

Biểu mẫu A có điều khiển người dùng B và G trong đó. Điều khiển người dùng B có điều khiển người dùng D bên trong nó và điều khiển người dùng D có phương thức "làm mới". Điều khiển người dùng G có điều khiển người dùng F trong đó, và điều khiển người dùng F cần gọi phương thức "làm mới" trong D.

1) Ngắn cơ cấu lại mã (Đó là mã cũ, vì vậy nó không có trong bảng) , đại biểu có phải là cách tốt nhất để xử lý vấn đề này không? Nếu không, bạn có đề xuất nào khác không?

2) Tôi không có kinh nghiệm với các chức năng đại biểu - có một mồi hay ví dụ tốt mà tôi có thể sử dụng để thích ứng với mã của mình để đạt được chức năng mong muốn không?

Trả lời

4

Đầu tiên, F không nên biết gì về D và chức năng làm mới của nó. Thêm sự kiện vào F, được nâng lên khi cần thiết. Nếu mẫu A biết về F, subsctibe cho sự kiện này từ A. Nếu không, hãy tạo sự kiện tương tự trong G và đăng ký nó trong A. Trong bộ xử lý sự kiện, gọi Làm mới trực tiếp hoặc gọi phương thức B, gọi là D.refresh.

Dường như câu trả lời của tôi thậm chí còn ít hơn có thể đọc được hơn câu hỏi của bạn :) Nó sẽ giống như thế này:

F làm tăng sự kiện -> G xử lý sự kiện F và làm tăng sự kiện -> Một xử lý sự kiện G và gọi phương pháp B -> phương pháp B gọi D.refresh

+0

@Raven bạn đang đi đúng hướng với đại biểu. Các sự kiện được khai báo bằng cách sử dụng các đại biểu để các đại biểu học tập đầu tiên là một ý tưởng tốt. –

0

Đối với các đại biểu thấy điều này: http://www.akadia.com/services/dotnet_delegates_and_events.html

Đối với sự kiện bạn phải chắc chắn rằng công cụ mà đi qua trong thứ tự đúng. Trong kịch bản hiện tại, tôi đoán rằng cách tốt nhất là phơi bày một sự kiện từ G sẽ được kích hoạt khi có thứ gì đó trong F thay đổi. Và chúng ta sẽ có một trình xử lý đăng ký sự kiện này trong B, cuối cùng sẽ gọi refresh. Sẽ có thêm một vài sự kiện và đại biểu khác có liên quan để chuyển các cuộc gọi từ cha mẹ sang con và ngược lại. Hãy ghi nhớ khái niệm về một thiết bị cơ khí: một phần mà bắt đầu chuyển động là một trong những người gây nên (tăng sự kiện) cho người khác. Khi những người khác di chuyển họ kích hoạt các bộ phận liên quan khác ... và cuối cùng một cái gì đó xa di chuyển. Hy vọng điều đó sẽ hữu ích.

Các vấn đề liên quan