Eklenti yerine yeniden yazma kullanmanın bariz nedeni, özel, korumalı veya son yöntemleri geçersiz kılmanız gerektiğidir .
Ancak aşağıdaki senaryoları da göz önünde bulundurun.
1. senaryo (mutlak sıralama düzeni):
Eklentilerden önce kodunuzun çalıştırılması gerektiğinde yeniden yazma işlemi yararlı olabilir . Eklentiyi ayarlayarak bunu yapabileceğinizi biliyorum sortOrder
, ancak kodunuz her zaman birisinin (siz değil) 3. taraf bileşenleri yükleyeceği zaman ilk olacağından emin olamazsınız.
2. senaryo (kodu hariç tut):
Bir yöntemde yalnızca bir kod parçasını hariç tutmanız veya yeniden yazmanız gerekiyorsa , eklenti en uygun olmayan yol olabilir. Bir around
eklenti kullanabilir ve çağırmaktan kaçınabileceğinizi biliyorum proceed
, ancak bu yığındaki diğer eklentileri kırabilir.
3. senaryo (kod stili):
Bir davranışı yeniden yazmanız gerektiğinde yeniden yazma işlemi kullanmalısınız , çıktıyı değiştirmek için eklentiler kullanılmalıdır veya kodu önce / sonra çalıştırmak .
Bir eklenti, diğer modülleri bozmamak için daima orijinal kodu çalıştırmalıdır .
Benim sonucum:
Çekirdek bir yöntemi kara kutu olarak düşünebilirsiniz bir girişi ve bir çıkışı olan bir ve iç mekanizmaları hakkında agnostik iseniz, bir eklenti en iyi seçenek olabilir.
Dahili davranışı değiştirmeniz gerekirse , yeniden yazma en iyi seçenek olabilir.