Resumen - Fábrica de coches
Parte de la sección Programación Orientada a Objetos del Journey de Lua de Coddy. Lección 11 de 70.
Desafío
Fácil¡Construyamos una clase Car completa que reúna todo lo que has aprendido en este capítulo! Crearás un sistema de fábrica de automóviles en el que cada automóvil tiene su propio modelo y color, demostrando una organización adecuada de los módulos y unas instancias independientes.
Organizarás tu código en dos archivos:
Car.lua: Define tu claseCarsiguiendo el patrón de prototipo estándar. Tu clase necesita un constructor:new(model, color)que cree automóviles con sus propios atributos. Incluye un método:describe()que permita a cada automóvil presentarse.main.lua: Requiere tu módulo Car y crea varias instancias de automóviles para demostrar que cada automóvil mantiene su propio estado independiente.
Tu método :describe() debe imprimir con este formato exacto:
A [color] [model]Recibirás cuatro entradas:
- Modelo del primer automóvil
- Color del primer automóvil
- Modelo del segundo automóvil
- Color del segundo automóvil
En tu archivo principal, crea dos automóviles usando las entradas proporcionadas y haz que cada uno se presente en una línea separada.
Por ejemplo, si las entradas son Sedan, blue, Truck y red, la salida debería ser:
A blue Sedan
A red TruckCada automóvil debe almacenar su propio modelo y color, demostrando que tu clase crea instancias verdaderamente independientes.
Pruébalo tú mismo
-- Requerir el módulo Car
local Car = require('Car')
-- Leer entradas
local model1 = io.read()
local color1 = io.read()
local model2 = io.read()
local color2 = io.read()
-- TODO: Crear dos instancias de coche usando Car:new()
-- TODO: Llamar a :describe() en cada coche para imprimir sus descripciones
Todas las lecciones de Programación Orientada a Objetos
1El concepto de 'self'
Tablas con funciones'self' explícitoLa sintaxis de dos puntosPunto vs. dos puntosResumen - Punto en movimiento4Proyecto: Banco Digital
Configuración del proyectoMétodo de depósito2Patrón de prototipo de clase
El concepto de prototipoVinculación con __indexEl constructor :new()Inicialización de atributosInstancias independientesResumen - Fábrica de coches5Sobrecarga de operadores en POO
Sumar objetosRestar objetosConcatenar objetosComparar objetos (<, >)Resumen - Matemáticas de la billetera8Encapsulamiento
Convenciones de nomenclaturaClosures para privacidadAcceso mediante ClosuresTablas de solo lecturaLógica de validaciónResumen - Bóveda segura11Patrones de diseño (Lite)
Funciones FactoryTabla SingletonPatrón IteradorObserver (Listener)Resumen - Logger Factory3Estado y Comportamiento de los Objetos
Variables de InstanciaMétodos GetterMétodos SetterPropiedades CalculadasFormateo de StringsComprobaciones de IgualdadResumen - Calificación del Estudiante6Fundamentos de la herencia
Configuración de la herenciaHerencia de métodosExtender el constructorAñadir métodos hijosCompartido vs. ÚnicoResumen: Jerarquía de formasPractica por tu cuenta: Compilador de Lua online