Skip to content

Informe Técnico: Aplicación del Patrón Iterator en SudokuSolver #6436

@isaltosf

Description

@isaltosf

What would you like to Propose?

Propuesta de refactorización del módulo SudokuSolver aplicando el patrón de diseño Iterator.

Se introduce una clase Cell que encapsula la posición y valor de una celda del tablero, una clase CellIterator para recorrerlo celda por celda, y se implementa Iterable<Cell> en SudokuBoard.

Esto mejora la flexibilidad del recorrido, el desacoplamiento del algoritmo y la mantenibilidad general del código.

Issue details

Informe Técnico: Aplicación del Patrón Iterator en SudokuSolver
Autor: Andrés Alexander Saltos Preciado
Fecha: 23/07/25

Problemas y Soluciones

Recorrido Desacoplado
Problema: El recorrido de la matriz Sudoku estaba acoplado al algoritmo, dificultando modificaciones y pruebas.
Solución: Encapsular el recorrido mediante la implementación del patrón Iterator con la clase CellIterator.
Beneficio: Recorrido más limpio, reutilizable y desacoplado de la lógica de resolución.

Encapsulamiento de Celda
Problema: El acceso a fila, columna y valor estaba disperso y poco claro.
Solución: Crear clase Cell con atributos row, col y value.
Beneficio: Mejora la semántica del código y facilita operaciones con las celdas.

Integración con Iterable
Problema: SudokuBoard no ofrecía un mecanismo estandarizado para recorridos.
Solución: Implementar la interfaz Iterable en la clase SudokuBoard.
Beneficio: Integración nativa con bucles for-each y APIs de Java.

Impacto

✅ Menor acoplamiento

✅ Mayor reutilización

✅ Código más expresivo y mantenible

Recomendación: Implementar en rama feature/iterator-refactor
Andrés Saltos
analsalt@espol.edu.ec

Additional Information

No response

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions

      pFad - Phonifier reborn

      Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

      Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


      Alternative Proxies:

      Alternative Proxy

      pFad Proxy

      pFad v3 Proxy

      pFad v4 Proxy