Esta página se tradujo automáticamente con la API de traducción de Google Cloud.
Algunas páginas se pueden leer mejor en su totalidad.
El patrón mediador es un patrón de diseño de software de comportamiento que permite la comunicación entre objetos sin necesidad de que se conozcan entre sí. Esto puede ser útil en situaciones donde existe la necesidad de centralizar el control o reducir las dependencias entre objetos.
En esta publicación, veremos cómo se puede implementar el patrón de mediador en Kotlin. Comenzaremos observando un ejemplo simple de cómo se puede usar el patrón para desacoplar objetos. Luego veremos un ejemplo más realista que hace uso de la biblioteca estándar de Kotlin.
Supongamos que tenemos una clase que representa una sala de chat:
class ChatRoom {
fun showMessage(user: User, message: String) {
println("${user.name}: $message")
}
}
Y una clase que representa a un usuario:
class User(val name: String) {
fun sendMessage(message: String) {
ChatRoom.showMessage(this, message)
}
}
En este ejemplo simple, la clase ChatRoom
actúa como mediador entre los objetos Usuario
. Los objetos 'Usuario' no se conocen entre sí, solo conocen el objeto 'ChatRoom'.
En un ejemplo más realista, podríamos querer desacoplar la clase Usuario
de la clase ChatRoom
. Podemos hacer esto usando el patrón mediador.
Primero, crearemos una interfaz ChatRoom
:
interface ChatRoom {
fun showMessage(user: User, message: String)
}
Luego crearemos una interfaz de Usuario
:
interface User {
fun sendMessage(message: String)
}
Ahora podemos crear una implementación ChatRoom
:
class DefaultChatRoom : ChatRoom {
override fun showMessage(user: User, message: String) {
println("${user.name}: $message")
}
}
Y una implementación Usuario
:
class DefaultUser(override val name: String) : User {
override fun sendMessage(message: String) {
DefaultChatRoom.showMessage(this, message)
}
}
En este ejemplo, las clases DefaultChatRoom
y DefaultUser
están desacopladas entre sí. Solo se conocen entre sí a través de las interfaces que implementan.
El patrón mediador es un patrón útil para desacoplar objetos entre sí. Se puede utilizar para centralizar el control o reducir las dependencias entre objetos. En Kotlin, el patrón se puede implementar mediante interfaces.