Command Design Pattern (Komut Tasarım Kalıbı)

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

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

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

    Abi ağzına sağlık türkçe anlatman gerçekten çok iyi teşekkür ederim.

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

    çok kaliteli video hocam, sağolun güzel anlatım için

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

    Güzel bir örnek olmuş. Ellerinize sağlık Sadık hocam.

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

    Mod olsun son olsun esprisinden sonra moddumuz düşse de video kalitesi düşmüyor.

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

    merhaba elinize sağlık güzel bir ornek oldu, burada kafama takılan bir konu var, App2 sınıfın'da 6 tane işlem yapılıyor. Burada bu işlemlerin hangisinin yapılacağını bilmediğimiz durumda yine if else yazmaktan kaçamıyoruz. Bunu nasıl çözmeliyiz peki ?
    Örneğin, client string olarak ("toplama", 2 , 3) diye parametre gonderdiğini düşünün (genelde bu durum bir web servis aracılığıyla gonderildiğinde meydana geliyor) burada yine if else den kaçamıyor gibiyiz ?

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

      Merhaba,
      Teşekkür ederim.
      Geliştirme yaparken amacımız aslında bunlardan kaçmak değil (çoğu durumda kaçınılmaz zaten) doğru yere konumlandırmak.
      Şöyle düşünün: Hali hazırda toplama, çıkarma, çarpma ve bölme işlemleri vardı ve yazdık. Dediğiniz gibi de if/else ile de bunları ayarladık vs. Buraya kadar bir problem yok.
      Bundan sonra mod işlemi yapılmak istendiğinde bir if/else yazma durumu ortaya çıkacak yani kaçınılmaz diyelim. Önemli olan burada aslında bir if/else daha yazmamaktan ziyade, if/else i nereye yazacağımız.
      Eğer client'ın ayarlamalarını yaptığım yere yazıyorsam sorun yok çünkü zaten yeni bir özellik eklediğimde client için bir geliştirme yapıyorumdur ve bu çok da anormal bir durum değildir fakat işlemin merkezinde, yani HesapMakinesi gibi generic bir yerde gidip bir if else daha yazıyorsam işte bu sıkıntılı bir durum.

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

      Switch'den kurtulmak için Polymorphism konsepti kullanılabilir. Matematiksel işlemleri bir interface altında toplayabilirseniz switch olmadan da işlem yapabilirsiniz. Örneğin, ToplamaIslemi implements HesaplamaIslemi, CarpmaIslemi implements HesaplamaIslemi gibi. HesaplamaIslemi internface'inde hesapla(args) şeklinde bir method ile bu iş kotarılabilir.

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

      Merhaba,
      Haklısınız fakat Mehmet Bey client dan string şeklinde "toplama", "cikarma" seklinde girdi alacağını söylüyor.
      Bu durumda bir şekilde bir yerlerde bunun implementasyonunu seçmemiz gerekiyor.
      Zaten buradaki ilk if/else den de polimorfizm kullanılarak kurtulmuş olduk.