public virtual void Visit(Camshaft camshaft)
 {
     Console.WriteLine(@"diagnosing camshaft");
 }
 public virtual void Visit(Camshaft camshaft)
 {
     _camshaftCount++;
 }
 protected AbstractEngine(int size, bool turbo)
 {
     _size = size;
     _turbo = turbo;
     _running = false;
     _power = 0;
     _camshaft = new Camshaft();
     _piston = new Piston();
     _sparkPlugs = new SparkPlug[]
                   {
                       new SparkPlug(),
                       new SparkPlug(),
                       new SparkPlug()
                   };
 }