Blog Yazılarım

Laravel ile Solid Tasarım Prensip'inin Kullanımı 2

Laravel ile Solid Tasarım Prensip'inin Kullanımı 2


O Nedir — Açık Kapalı Prensibi

Resmi tanıma göre

Yazılım varlıkları uzantı için açık, ancak değişiklik için kapalı olmalıdır.

Varlıklar sınıflar, modüller, işlevler vb. Olabilir. Tanım; mevcut kodu değiştirmek yerine yeni kod ekleyerek işlevselliği genişleten anlamına gelir.
Başlığa göre anlamak oldukça kafa karıştırıcı. Öyleyse Laravel’deki örneklerle görelim.

Diyelim ki ödemeleri içeren bir e-ticaret sistemimiz var. Yani, elimizde PaymentControllerve bu controller, şu anda payiki ödeme yöntemi olan 1. yöntemimiz Kredi Kartı ) 2. yöntemimiz Paypal ve kodlar aşağıdaki gibi görünüyor:

PaymentController.php

ve Paymentsınıfımız bu şekilde :
Payment.php

Yeni bir ödeme yöntemi eklemek istediğimizde ne olur, diyelim ki banka havalesi

payyöntemine ekleyebiliriz ve gelen uygun bir yöntemi çağırmak için Paymentsınıfına ekleriz.
Dolayısıyla paymethod'u aşağıdaki gibi görünür:
PaymentController.php

ve Paymentsınıfı değiştirmek :
Payment.php

Peki bundan sonra ne olacak? Mesela Nakit adında başka bir ödeme yöntemimiz varsa ifPaymentsınıfa bir tane daha ve sonra yeni bir yöntem ekledik . Başka bir ödeme yöntemi olan Kupon Ödemesi geliyor ve yine sınıfları değiştiriyoruz. Bu ilkenin ne dediğini hatırlayın, Uzatma için aç ancak değişikliklere yakın. bu yüzden burada bu prensibi bozuyoruz.
Öyleyse, nasıl düzeltilir, burada Aç Kapatma İlkesini uygulayalım.

PHP’deki arabirimler hakkında daha fazla bilgi edinin interfaceadlı bir yöntemle yeni bir şey yapalım .pay
PayableInterface.php

classHer ödeme yöntemi için bir ödeme yapın ve PayableInterfaceile genişletin .
CreditCardPayment.php

PaypalPayment.php

CreditCardPayment.php

Şimdi yeni bir sınıf oluştur
PaymentFactory.php

ve son olarak bizim payyöntemimiz
PaymentController.php. Bu ödeme yöntemi PaymentFactoryödemelerin yapılmasını ister ve factory her şeyi kendisi halleder.

Bu kadar. Yeni ödeme yöntemi gelirse şimdi sınıfları değiştirme sorununu çözüyoruz, mevcut olanı değiştirmek yerine yeni sınıf ekleyerek işlevselliği genişletiyoruz.

Bu yazımda solid kavramının ikinci harfi olan O’nun yani açık - kapalı ilkesinin nasıl yapılacağını öğrenmiş olduk. Umarım bu yazım faydalı olmuştur.



Bu yazıyı paylaş


Yorumlar (0)

Yorum Yap