No tienes acceso a esta clase

隆Contin煤a aprendiendo! 脷nete y comienza a potenciar tu carrera

Extensibilidad

7/14
Recursos

Aportes 16

Preguntas 3

Ordenar por:

驴Quieres ver m谩s aportes, preguntas y respuestas de la comunidad?

隆Hola!

Con el tema de interfaces se recomienda tener mucho en cuenta el principio I de los principios SOLID, es decir, Interface segregation o segregaci贸n de interfaces, este principio consiste en que una clase no deber铆a de tener implementada una interfaz con m谩s m茅todos de los que necesita, ejemplo, de una interfaz llamada IAnimales que tiene los siguientes m茅todos:

  • Volar
  • Comer
  • Correr
  • Caminar

Una clase llamada Perro no deber铆a de poder implementar esta interfaz, porque un perro no puede volar (a menos que est茅s en una pel铆cula de terror), aplicando el principio de segregaci贸n de interfaces, se recomienda dividir esta interfaz, ejemplo:

interface IAnimales {
  correr(): void;
  caminar(): void;
}

interface IAnimalesVoladores extends IAnimales {
  volar(): void;
}

interface IAnimalesNoVoladores extends IAnimales {
  noVolar(): void;
  saltar(): void;
}

class Pajaro implements IAnimalesVoladores {

  public correr(): void {}
  public caminar(): void {}
}

class Perro implements IAnimalesNoVoladores {
  public volar(): void {}
  public noVolar(): void {}
  public saltar(): void {}
  public correr(): void {}
  public caminar(): void {}
}

Espero que te sea de ayuda este aporte.

La extensibilidad es una medida de la capacidad de extender un sistema y el nivel de esfuerzo requerido para implementar la extensi贸n.

solo reorganize el codigo para que se vea desde lo mas independiente (arriba) hasta lo mas dependiente (abajo)

// HttpGateway file
import 'http' from 'HttpModule'

class HttpGateway:
  private url = '/api'
  public method fetchManu(resource) is
    // url will be /api/users
    return http.get(url + '/' + resource)
// file client
import 'httpGateway' from 'HttpGateway'
class UserService:
  public method getAll() is
    return httpGateway.fetchMany('users')

Extensibilidad:

  • Cambios sencillos y comprensibles
  • Cambios por contrato y/o interfaz
    requiere鈥
  • Comprender el problema
  • Consenso en la norma est谩ndar


El chiste est谩 en iterar, r谩pido, sencillo y con amplios m谩rgenes de mejora

馃挕 Documentaci贸n de todas las convenciones a las que se ha llegado.

Extensibilidad:

Capacidad de agregar nuevas cosas sin la necesidad de modificar en gran forma lo ya existente

Interfaz

Estipula las reglas que, las clases que lo implementen, tienen que seguir.
En este sentido, una interfaz puede entenderse como un contrato abstracto que establece el comportamiento esperado del componente que la implementa, as铆 como las restricciones, requisitos y formatos de entrada y salida que deben cumplirse.

trabajar con interfaces, al principio es muy chocante, suelen ser conceptos muy abstractos

Esto me ha sucedido con bash script, tuve que implementar algo asi pero con llamadas para manipular al sistema operativo.

Pero lo hice sin tener esta teor铆a, solo fue intuici贸n, tambien me hace recordar cosas que se hacen en redes.

Usar tantas herramientas dentro de un proyecto puede ser enredoso pero si no se aplican patrones, espero mucho de este curso para fortalecer las bases del dise帽o de patrones

En TS es muy com煤n usar interfaces.

Las interfaces son muy usadas en el proyecto que estoy actualmente trabajando con CSharp, el concepto es claro para mi.

De hecho hace poco por no decir d铆as, hice algo similar, resulta que el software estaba implementado en Event Tracking llamado X, por cuestiones de negocio se solicit贸 cambiar este proveedor por Y. Mi sorpresa fu茅 cuando entr茅 y vi la implementaci贸n de X, primero no estaba centralizado, segundo, estaba fuertemente acoplado, y tercero estaba mal regado por todas partes del c贸digo, as铆 que cre茅 la EventTrackingInterface y esta solucion贸 mis problemas.

Excelente clase, todo super interesante y claro 馃憤

Creo que toda esta explicaci贸n de contratos y el ejemplo de RestGateway y GraphqlGateway son parte de lo que es el Principio de Inversi贸n de Dependencias (5to principio SOLID) https://blog.logrocket.com/dependency-inversion-principle-typescript/

si con servicios WCF me gusta esa implementaci贸n pero se que actualmente se esta usando mas servicios REST.

En algunas im谩genes colocas depende de y en otras dice esta est谩 compuesta por,, 驴cu谩l es la diferencia ? Gracias , excelente contenido
"Hay que agregar cambios con los menos cambios posibles" 驴Por qu茅 esto es as铆? lo dijo pero no explic贸.