Estacionamiento, programación orientada a objetos de Diseño - Diseño Personalizado [cerrado]

StackOverflow https://stackoverflow.com/questions/9454102

  •  13-11-2019
  •  | 
  •  

Pregunta

Estoy trabajando en el estacionamiento de ejemplo, y de hecho algunos supuestos como el diseño.

Tengo par de preguntas en la asignación de atributos a los Elementos/Objetos.

1) Si se puede aparcar no es asignada por el sistema, es decir, el usuario sólo en el Lote, se encuentra un lugar apropiado (coche/moto/camión/discapacitados) y parques de su coche.

Creo que no necesito un Parking objeto, pero en lugar de eso, puedo mantener un recuento de no_of_free_places para cada uno de los category_of_parking_space.

Desde el espacio de estacionamiento es grande, acabamos de mantener tres variables.

  • no_of_free_slots_Car
  • no_of_free_slots_Bike
  • no_free_slots_Truck
  • no_free_slots_Handicapped

cuando un vehículo viene, solo que disminuir uno de los valores anteriores (lo que significa que, de los disponibles X lugares, el usuario escoge una y parques), y cuando los vehículos se va, podemos aumentar el valor correspondiente.(en breve, aparcamiento no está asignado por cualquier persona, vehículo que va a uno de los lugares y parques)

2) Suponiendo que tenemos un solo mundial de los parquímetros.
--> Si el start_time/end_time ser un atributo del Vehículo?
O
--> vehicle_id, start_time, end_time ser parte de ParkingMeter.

3) Suponiendo que la necesidad de un parking objeto, debe 4_wheeler, 2_wheeler, discapacitados ser un tipo enum, o una clase separada por completo.
Si su enumeración, podemos utilizar findEmptySlot(parkingSpace_type);
Si son independientes de la clase en conjunto, y aparcamiento lote tiene un método findEmptySlot();
¿Cómo podemos hacer que la Ranura apropiada?

ParkingMeter será responsable de la configuración del vehículo, inicio, final de los tiempos a la derecha?

Si la tiene varias cantidades, 1h - 20$, 2h - 30$, 3h - 40$, 5h - 50$
es bueno tener estos parte de ParkingMeter clase o incluirlas en una clase separada "ParkingPrice"

¿Fue útil?

Solución

Bueno,

  1. No entendí bien la pregunta, pero me hubiera hecho uso de una matriz ParkingSpace objetos para describir los espacios en el parque.
  2. Dado que el tiempo es por vehículo, el momento en que se deben establecer en el vehículo.
  3. Yo uso una clase diferente para cada uno, y cada uno debe extender la clase abstracta Vehicle.Permite flexibilidad en común y las características únicas de cada tipo de vehículo (número de serie para todos los vehículos, pero sólo 4_wheelers tienen puertas, por ejemplo).En cuanto a cómo encontrar estacionamiento vacío, espacios, cada uno ParkingSpace objeto tendría un $takenBy la propiedad, que se mantenga una instancia del vehículo objeto de la ocupa.Se debe de forma predeterminada null, entonces , simplemente recorrer la matriz de espacios en su ParkingLot clase, y encontrar el uno con $space->takenBy == null.
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top