Rutas
/
C#
C#
/
Ejercicios
/
Limpieza del control remoto
Limpieza del control remoto

Limpieza del control remoto

Ejercicio de aprendizaje

Introducción

Tipos anidados

Los tipos de C# se pueden definir dentro del scope de un class o struct. El tipo contenedor proporciona una especie de espacio de nombres. El acceso al tipo se realiza a través del tipo contenedor con la sintaxis de punto.

class Outer
{
    public interface IInner {}
    public enum EInner {}
    public class CInner {}
    public struct SInner {}
}

var outer = new Outer();
var inner = new Outer.CInner();

Puedes establecer niveles de acceso para los tipos internos.

Los miembros privados del tipo contenedor están en el scope de los miembros del tipo interno, pero no al revés.

Instrucciones

Algunos desarrolladores «otros» han estado trabajando en el proyecto del coche teledirigido remote-control-competition. Te han llamado para limpiar el código.

1. Separa las responsabilidades entre el propio coche y el sistema de telemetría

Refactoriza la clase RemoteControlCar para separar los métodos y propiedades de telemetría a los que se accede mediante una propiedad Telemetry.

var car = new RemoteControlCar();
car.Telemetry.Calibrate();
car.Telemetry.SelfTest();
car.Telemetry.ShowSponsor("Walker Industries Inc.");
car.CurrentSponsor
// => "Walker Industries Inc."
car.Telemetry.SetSpeed(100, "cps");
car.GetSpeed()
// => "100 centimeters per second"

2. Evita que otro código dependa demasiado del tipo Telemetry

Asegúrate de que la instancia de Telemetry no se pueda crear fuera del scope del coche.

3. Evita que otro código dependa de la estructura Speed

Asegúrate de que la estructura Speed no se pueda usar fuera del scope de la clase RemoteControlCar.

4. Evita que otro código dependa de la enumeración SpeedUnits

Asegúrate de que la enumeración SpeedUnits no se pueda usar fuera del scope de la clase RemoteControlCar.

Editar en GitHub El enlace se abre en una ventana o pestaña nueva
C# Exercism

¿Listo para empezar Limpieza del control remoto?

Regístrate en Exercism para aprender y dominar C# con 62 conceptos178 ejercicios y mentoría humana real, todo gratis.