Estacionamiento, programación orientada a objetos de Diseño - Diseño Personalizado [cerrado]
-
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"
Solución
Bueno,
- No entendí bien la pregunta, pero me hubiera hecho uso de una matriz
ParkingSpace
objetos para describir los espacios en el parque. - Dado que el tiempo es por vehículo, el momento en que se deben establecer en el vehículo.
- 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 unoParkingSpace
objeto tendría un$takenBy
la propiedad, que se mantenga una instancia del vehículo objeto de la ocupa.Se debe de forma predeterminadanull
, entonces , simplemente recorrer la matriz de espacios en suParkingLot
clase, y encontrar el uno con$space->takenBy == null
.