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 + " has done a good job cleaning after yourself"
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();
}
}
}
This post was edited by Gorgeous George at 5 Feb 2012