¿Qué son los domain controllers?

| Última modificación: 22 de mayo de 2024 | Tiempo de Lectura: 3 minutos

Algunos de nuestros reconocimientos:

Premios KeepCoding

En este artículo te contamos qué son y algunos ejemplos de los domain controllers y, para ello, recordamos el concepto domain, así como los elementos que lo componen, con el propósito de que tengas un contexto claro sobre este tema.

¿Que es domain?

Antes de entrar en materia acerca de los domain controllers en un software, resulta necesario recordar a qué se refiere el término dominio y por qué es relevante.

El domain se encuentra relacionado con la arquitectura de software y es en sí mismo responsable de representar lo que se simula dentro del ordenador.

Sin embargo, ¿qué queremos decir al respecto? Por lo general, cualquier software que desarrolle simulará algo en el mundo real, por ejemplo, puede que estés desarrollando una aplicación para informarte sobre las rutas más concurridas por vehículos motorizados. Por ende, necesitas simular los mapas con la infraestructura de las diferentes ciudades, así como las opciones para transitar que tendrá el usuario y las ventajas o desventajas de cada una, entre otras cosas.

¿Cuáles son los componentes del domain en un software?

Después de recordar a qué se refiere el concepto domain, podemos entrar en materia sobre los diferentes elementos que lo componen para, de esta forma, explicar cada uno. En sí, los componentes más comunes en un programa son:

  • Domain agents: son elementos mínimamente funcionales con una responsabilidad, así que supongamos que son “cosas” que tienen una contraparte en el sistema que se está simulando. Por lo general, en los lenguajes de programación se les denomina clases o tipos, sin embargo, algunos libros se refieren a ellos como “entidades”, lo cual resulta ser algo confuso.
  • Repositorios: es el segundo de los componentes de dominio en el software y se refiere a las interfaces para crear agentes de dominio. Los repositorios a menudo se usan como un buffer de abstracción para ocultar detalles que, de cierta forma, no le importan al domain.
  • Domain controllers: estos son los componentes que hacen referencia a las acciones que se implementarán en los diferentes agentes del programa, por lo que hacen de mediadores y los controlan. En general, estas unidades de control puede ser clases o funciones, todo depende de la complejidad del programa.

En la siguiente imagen se puede ver una representación de cómo se relacionan estas tres partes del dominio en el programa:

Componentes del domain en un software 2

Ejemplos de domain controllers

🔴 ¿Quieres entrar de lleno al Desarrollo Mobile? 🔴

Descubre el Desarrollo de Apps Móviles Full Stack Bootcamp de KeepCoding. La formación más completa del mercado y con empleabilidad garantizada

👉 Prueba gratis el Bootcamp en Desarrollo de Apps Móviles por una semana

Ahora bien, este tema puede resultar complicado de entender, así que, para facilitarlo un poco, te presentamos algunos ejemplos del componente domain controllers en un software.

ValuePresenter

A grandes rasgos, es una interfaz o clase abstracta, la cual busca representar una variedad de formas de presentar un valor contable: fuentes, colores, redondeo, etc. Lo hace con el fin de poder representar un valor y una divisa. De hecho, ValuePresenter es un ejemplo de patrón Strategy.

ValueConverter

Otro ejemplo de domain controllers es el ValueConverter, que se encarga de transformar un Value de una divisa a otra. En sí, no tiene por qué ser una clase; de hecho, puede ser una función.

ValueReducer

El ValueReducer es otro ejemplo de domain controllers, el cual transforma una lista de valores (con posibles divisas diferentes) en un solo valor con una divisa de salida. Este valor final, a su vez, se puede presentar con un ValuePresenter. Como en el caso del ValueConverter, no es necesario que sea una clase, sino que también podría ser una función.

Ahora que tienes unas bases acerca de qué son los domain controllers, es probable que te interese ampliar mucho más la información relacionada con la arquitectura de software. Por esta razón, debes saber que en KeepCoding buscamos la forma de ayudarte a familiarizarte con el desarrollo mobile y acompañarte en tu proceso de formación, por lo que hemos construido nuestro Desarrollo de Apps Móviles Full Stack Bootcamp.
   

Con este bootcamp, podrás acceder a una formación intensiva y de alta calidad que será perfecta para tu proceso de formación. Dentro de nuestro temario se encuentran contemplados temas como los procesos de desarrollo y diseño de apps multiplataforma, así como cuáles son los fundamentos iOS y Android y varias pautas de diseño de aplicaciones, entre muchas cosas más. ¡No dejes pasar esta gran oportunidad y da un gran salto en tu formación académica!

Jose Luis Bustos
Jose Luis Bustos

Lead Software Architect & Coordinador del Bootcamp en Desarrollo de Apps Móviles iOS & Android.

Posts más leídos

¡CONVOCATORIA ABIERTA!

Desarrollo de apps móviles ios & Android

Full Stack Bootcamp

Clases en Directo | Profesores en Activo | Temario 100% actualizado