The toilet namespace

Het toilet is een prima plek om dat lastige probleem waarmee je worstelt eens door je onderbewustzijn te laten tackelen. Mocht het eurekamoment er echter boven komen drijven, dan hebben wij de volgende ludieke boodschap in het toilet hangen om de betreffende persoon te herinneren aan zijn verplichtingen:


.namespace ToiletApplication
.{
.  class Program
.  {
.    static void Main(string[] args)
.    {
.      var person = new Person() { Name = "YOU" };
.      var toilet = new Toilet();
.      var toiletBrush = new ToiletBrush();

.      person.Poop(toilet);
.      person.CleanToilet(toilet, toiletBrush);
.      Console.WriteLine(person.Name + " did a good job cleaning up after him/herself");
.      Console.ReadLine();
.    }
.  }

.  public class Person
.  {
.    public string Name { get; set; }

.    public void Poop(Toilet toilet)
.    {
.      toilet.Use();
.    }

.    internal void CleanToilet(Toilet toilet, ToiletBrush toiletBrush)
.    {
.      while (!toilet.isClean())
.      {
.        toiletBrush.Clean(toilet);
.      }
.    }
.  }

.  public class Toilet
.  {
.    int nrOfBrownSpots = 0;

.    public void Use()
.    {
.      Random r = new Random(DateTime.Now.Millisecond);
.      nrOfBrownSpots = r.Next(1, 10);
.    }

.    public bool isClean()
.    {
.      return nrOfBrownSpots == 0;
.    }

.    internal void RemoveBrownSpot()
.    {
.      nrOfBrownSpots--;
.      Console.WriteLine(nrOfBrownSpots);
.    }
.  }

.  public class ToiletBrush
.  {
.    public void Clean(Toilet toilet)
.    {
.      toilet.RemoveBrownSpot();
.    }
.  }
.}