Se si dispone di una classe che contiene una variabile di stato e due classi membro che devono accedervi e operare in modo asincrono. Qual è il modo migliore per implementarlo?Condivisione di una variabile tra una classe e il suo membro
Un esempio
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
}
Queste classi operano in modo asincrono. Le classi DeliveryMan e Supplier devono essere in grado di leggere/scrivere lo stato. DeliveryMan estrae lo stato del ristorante e il fornitore ascolta lo stato del fornitore.
C'è un modo migliore per progettare questo o un modo per implementarlo con un accoppiamento minimo senza dare a DeliveryMan o al fornitore un riferimento al suo proprietario.
dal momento che ResturantState è dichiarato privato come si prevede che le altre classi lo aggiornino? – user957902
Grazie, ho modificato il modificatore di accesso in interno – eddiehobbes
Se questi sono i tuoi stati attuali, ti consiglio di renderlo un corso con 2 bool come nella mia risposta (modificata). – Davy8