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