Exemplo n.º 1
0
        /// <summary>
        /// Dado un item, lo añade a la lista de items del personaje
        /// </summary>
        public void AddItem(IItem item)
        {
            if (!ExistItem(item))
            {
                this.items.Add(item);

                /*
                 *  El método AddPower de la interfaz IItem me ahorra tener que estar preguntando acá si el item es de ataque o de defensa
                 *  De esa manera evitamos romper varios principios:
                 *  LSP: Ya que si hago alguna sistitución entre los tipos podría generar un comportamiento inesperado
                 *  OCP: Ya que si agrego un tipo de item nuevo tengo que agregar un nuevo bloque que pregunte por ese nuevo tipo
                 *  Polimorfismo: Ya que tendría un bloque de código dedicado a cada tipo
                 */
                item.AddPower(this);
            }
        }