Principio de SUSTITUCIÓN DE LISKOV 🦆 - Principios SOLID en c#

แชร์
ฝัง
  • เผยแพร่เมื่อ 18 พ.ย. 2024

ความคิดเห็น • 20

  • @NetMentor
    @NetMentor  4 ปีที่แล้ว +3

    Blog: www.netmentor.es/Entrada/solid-principio-sustitucion-liskov
    twitter: twitter.com/NetMentorTW

  • @ManuelRBercian
    @ManuelRBercian 2 ปีที่แล้ว +1

    Excelente Explicación, felicitaciones. Saludos desde Guatemala.

  • @ivanskate18
    @ivanskate18 2 ปีที่แล้ว

    Que buena lista de SOLID! super claro, gracias!

  • @beatriztriz619
    @beatriztriz619 4 ปีที่แล้ว

    Muy buen vídeo; como todos los de esta lista de reproducción sobe SOLID.

  • @PabloHelal
    @PabloHelal 4 ปีที่แล้ว

    Buen ejemplo. Gracias

    • @NetMentor
      @NetMentor  4 ปีที่แล้ว

      gracias por el apoyo :D

  • @JamesVanstrahlen
    @JamesVanstrahlen 4 ปีที่แล้ว

    Gran explicación, tengo una duda con relación al principio , Si digamos que tengo una clase Persona y así mismo tengo dos clases más que serían , cliente y proveedor los cuales tendrían los mismo atributos que persona más algunos atributos propios de ellos, En ese caso si mi clase Cliente y Proveedor heredan de Persona, digamos para ahorrarme código, estaría violando el principio? Ya que Proveedor no sería igual a Persona al tener más atributos ,en ese caso como lo solucionaría ? Espero tu respuesta, gracias gran video

    • @NetMentor
      @NetMentor  4 ปีที่แล้ว

      Hola buenas, si te he entendido bien, lo que tienes es tu clase persona, la cual es común para ambas clases. Tu caso de heredar de persona esta bien, hasta cierto punto. pero hoy en dia se recomienda mas un patron de composición sobre la herencia utilizando el patron abierto cerrado.
      Lo que quiero decir es que Persona, deberia ser un atributo dentro de cada una de las clases. En el único caso donde yo personalmente heredo de clases es cuando tengo una clase base en común para muchas otras clases, en ese caso lo que haria sería una clase abstracta.
      Pero si, en tu caso, Persona deberia ser un atributo de cada una de las clases, tanto cliente como proveedor.

    • @NetMentor
      @NetMentor  4 ปีที่แล้ว

      Utilizando el principio(no patrón) abierto cerrado *

    • @JamesVanstrahlen
      @JamesVanstrahlen 4 ปีที่แล้ว

      Oh cierto el principio de Open / Close , aún no me habia quedado claro del todo por lo que veo! Muchas gracias , soy un estudiante de ingeniería y ahora mismo estoy desarrollando un proyecto para mí clase de programacion, entonces me había estado dando vueltas eso por estos días, gracias por pronta respuesta !

  • @pistoleta
    @pistoleta 3 ปีที่แล้ว

    Pero has dejado de tener disponible el método para obtener FileInfo (InformacionFichero) no?

    • @pistoleta
      @pistoleta 3 ปีที่แล้ว

      A vale que para lo único que lo usas es para saber si el archivo existe.

  • @pablotobar792
    @pablotobar792 3 ปีที่แล้ว

    mmm

  • @alfoorego8380
    @alfoorego8380 4 ปีที่แล้ว +1

    No me parece buen ejemplo porque partes de la base de que SQL herede de Fichero. Y eso es un error. Ambas clases deberían ser, conceptualmente, hijas de una misma base, o mejor aún, de un interfaz. En cualquier caso, hermanas. Pero no padre/hija.

    • @NetMentor
      @NetMentor  4 ปีที่แล้ว +2

      no se si has visto el vídeo entero, pero la idea del vídeo es presentar el porqué necesitamos Liskov y luego mostrar el caso de uso.
      Por ejemplo, menciono que tenemos una aplicacion X la cual tiene los datos almacenados en un sistema de ficheros, y queremos cambiar a SQL.
      Para ello sigo el proceso lógico que seguiria al migrar un sistema así, creamos nuestra clase SQL y menciono que para reemplazarlo debemos hacer lo mismo que haciamos en la clase con los ficheros. Aquí me doy cuenta de tu comentarrio ya que si, puede parecer confuso. Heredo temporalmente para explicar que debemos implementar los mismos métodos que teníamos en la otra clase.
      de hecho menciono que eso esta mal, pero bueno si, puede parecer confuso.
      Posteriormente en el vídeo creo la intefaz IAlmacenamiento la cual es la que implementan tanto AlmacenamientoFichero como AlmacenamientoSQL, así que son hermanas.
      La idea principal del vídeo es presentar un caso de uso, mas o menos real, como se haria para resolverlo paso a paso.

  • @alfoorego8380
    @alfoorego8380 4 ปีที่แล้ว +1

    Yo creo que en este vídeo no usas realmente Liskov. Estás usando polimorfismo, a secas.

    • @NetMentor
      @NetMentor  4 ปีที่แล้ว

      son terminos que en la practica representan el mismo Concepto.

  • @cyb3rsh0ck44
    @cyb3rsh0ck44 2 ปีที่แล้ว

    No, no no MALLL! el subtipo sustituye al tipo base o sea dios... si B es un subtipo de A entonces B sustituye A. y parece obvio pero no lo es, y de ahi el principio. Fuck !

  • @alfoorego8380
    @alfoorego8380 4 ปีที่แล้ว

    Pero, ¿por qué no cuentas qué relación hay entre ambos patos? ¿Heredan de una misma clase base? ¿El de juguete hereda del otro? ¿Cuál es el padre y cuál el hijo? Se supone que estás explicando que un padre debe poder sustituir a un hijo. Pues di cuál es cuál.

    • @cporcel1962
      @cporcel1962 ปีที่แล้ว

      Que pasa si por equivocacion al pato que no es de plastico le quiero cargar pilas por detras? Me ligo un picotazo?