Resumen - Fábrica de coches
Parte de la sección Object Oriented Programming del Journey de Lua de Coddy — lección 11 de 70.
Desafío
Fácil¡Vamos a construir una clase Car completa que reúna todo lo que has aprendido en este capítulo! Crearás un sistema de fábrica de coches donde cada coche tiene su propio modelo y color, demostrando una organización adecuada de módulos e 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 coches con sus propios atributos. Incluye un método:describe()que permita a cada coche presentarse.main.lua: Requiere tu módulo Car y crea múltiples instancias de coches para demostrar que cada coche mantiene su propio estado independiente.
Tu método :describe() debe imprimir en este formato exacto:
A [color] [model]Recibirás cuatro entradas:
- Modelo para el primer coche
- Color para el primer coche
- Modelo para el segundo coche
- Color para el segundo coche
In your main file, crea dos coches utilizando las entradas proporcionadas y haz que cada uno se describa a sí mismo 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 coche 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 Object Oriented Programming
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 formas