Jeśli masz klasę zawierającą zmienną stanu i dwie klasy elementów, które potrzebują do niej dostępu i działają asynchronicznie. Jaki jest najlepszy sposób wdrożenia tego?Udostępnianie zmiennej między klasą a jej członkiem
Przykładem
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
}
Klasy te działają asynchronicznie. Zarówno klasa DeliveryMan, jak i Supplier muszą mieć możliwość odczytu/zapisu stanu. DeliveryMan wypiera stan restauracji i Dostawca nasłuchuje statusu dostawcy.
Czy istnieje lepszy sposób zaprojektowania tego lub sposób wdrożenia go przy minimalnym sprzężeniu bez podawania dostawcy lub dostawcy odniesienia do jego restauracji właściciela.
od czasu, gdy ResturantState jest zadeklarowane jako prywatne, ponieważ można oczekiwać, że inne klasy zaktualizują go? – user957902
Dzięki, zmieniłem modyfikator dostępu na wewnętrzny – eddiehobbes
Jeśli są to twoje rzeczywiste stany, poleciłbym uczynić go klasą z 2 taktami jak w mojej (edytowanej) odpowiedzi. – Davy8