Совместное использование переменной между классом и его членом

Если у вас есть класс, содержащий переменную состояния и два класса-члена, которым необходим доступ к нему и которые работают асинхронно. Как лучше всего это реализовать?

Пример

 public enum RestaurantState
 {
     BREAKFAST,
     LUNCH,
     DINNER
 }

 public class Restaurant
 {
     //Below need access to state
     private DeliveryMan pizzaDriver ;
     private Supplier butcherShop ;

     internal RestaurantState state ; 
 }

public DeliveryMan
{
     //Uses a System.Timers.Timer
     //Wakes up and does work every a minute
     //Needs to inform state of restaurant
}

public Supplier
{
     //Waits and listens for requests to accept deliveries
     //If suppliers run out we need to change the restaurant state based on our own  current state
}

Эти классы работают асинхронно. Классы DeliveryMan и Supplier должны иметь возможность читать / записывать состояние. DeliveryMan сообщает о состоянии ресторана, а Поставщик прислушивается к статусу своего поставщика.

Есть ли лучший способ спроектировать это или способ реализовать его с минимальным взаимодействием без указания DeliveryMan или поставщика ссылки на его владельца Restaurant.

5
задан eddiehobbes 10 October 2011 в 17:42
поделиться