Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

235
Views
¿Por qué deberíamos usar la interfaz en el patrón MVP para Android?

Estoy creando una aplicación de Android usando Kotlin por primera vez usando el patrón MVP . Mi pregunta es, ¿por qué necesito interfaces para View y Presenter ya que Kotlin proporciona funciones de orden superior? ¿No podemos simplemente comunicarnos usando esas funciones de orden superior? ¿Es malo el uso de patrón sin interfaces?

He buscado y leído muchos artículos y tutoriales, pero no respondí a mi pregunta. ¿Lo que estoy haciendo en el siguiente código es una práctica incorrecta? ¿Alguien puede explicar me lo?

en mi actividad

 override fun init() { btn_login.setOnClickListener { LoginPresenter.userLogin(et_emailAddress.text.toString(),et_password.text.toString()){ if (it){ //do something }else{ //do something } } } }

mi presentador

 object LoginPresenter { fun userLogin(emailId: String, password: String, completion: (Boolean) -> Unit) { //do something completion(true) } }
over 4 years ago · Santiago Trujillo
2 answers
Answer question

0

  1. Costos de función de orden superior

    Documentación oficial de Kotlin sobre el costo de las funciones de orden superior

    El uso de funciones de orden superior impone ciertas penalizaciones de tiempo de ejecución: cada función es un objeto y captura un cierre, es decir, aquellas variables a las que se accede en el cuerpo de la función. Las asignaciones de memoria (tanto para objetos de función como para clases) y las llamadas virtuales introducen una sobrecarga de tiempo de ejecución.

    y si está reemplazando todas sus interfaces con funciones de orden superior, puede terminar con un mal desempeño.

2. Las interfaces pueden contener múltiples funciones, para las cuales necesitará parámetros de funciones individuales cuando use funciones de orden superior. Considere el siguiente caso,

 interface UserLoginInterface { fun onLoginSuccess(loggedInUser: User) fun onLoginFailure(error: ErrorResponse) fun onRedirect(someOtherObjectWithDirectives: SomeDataClass) }

Para traducir esto al uso de funciones de orden superior, deberá usar tres parámetros de función

over 4 years ago · Santiago Trujillo Report

0

¿Por qué necesito interfaces para View y Presenter ya que Kotlin proporciona funciones de orden superior?

Esta es una práctica bastante común en el desarrollo de software. Y aunque es posible que no use interfaces, hay una serie de puntos clave por los que las interfaces son preferibles. La parte superior de mi cabeza:

  1. con la interfaz, puede tener múltiples implementaciones sin preocuparse realmente por el tipo concreto de implementación. Esto es lo que te estás perdiendo con las funciones de orden superior: estás restringido con el único tipo, LoginPresenter , cuando usas el método LoginPresenter.userLogin() .

  2. la mayoría de los patrones de diseño se basan en la separación de las interfaces de sus implementaciones. Por lo tanto, programar en implementación en lugar de abstracción no le permitirá utilizarlos.

  3. no podrá realizar correctamente pruebas unitarias de clases que dependan de otras implementaciones, ya que en este caso no es posible burlarse.

  4. el mantenimiento y la extensión del código se vuelven mucho más difíciles con una implementación concreta.

over 4 years ago · Santiago Trujillo Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!