Verdiğiniz örneğe dayanarak kafanızdaki karışıklığı anlayabiliyorum. Bu, bir sınıfı kullanmanın gerçekten kötü bir yolu ... ve sadece bir sınıf kullanıldığı için, bir sistem OOP'si yapmıyor.
Hibrit durumunda, işlevlerini adlandırmak için sadece bir sınıf kullanıyorlar. Hybrid'in bir tema çerçevesi olduğu düşünüldüğünde , bu, çocuk temalarının geliştiricinin isim çarpışması konusunda endişelenmeden fonksiyon isimlerini tekrar kullanabilmeleri için yapılır. Çoğu durumda, bir tema çerçevesi (ana tema) çok karmaşıktır, çoğu çocuk tema geliştiricisi kaputun altında ne olup bittiğini tam olarak anlayamaz.
Hybrid bir sınıf yapısı kullanmadıysa, alt tema geliştiricilerin mevcut tüm işlev çağrılarının ne olduğunu bilmeleri gerekir; böylece adları yeniden kullanmaktan kaçınabilirler. Ve evet, tüm fonksiyonlarınızı benzersiz bir sümüklü böcek ile öneklendirebilirsiniz, ancak aynı işlevselliği kullanmak isteyen başka sistemler geliştirmeniz durumunda kodun okunmasını zorlaştırması, bakımı zor ve doğal olarak tekrar kullanılamaz olması gerekir.
Sorularınıza Cevap Vermek İçin
O ne lan? Bunu yapmanın amacı ne? Açıkçası, aynı temanın iki veya daha fazla örneğini aynı anda kullanmayacaksınız.
Hayır, aynı temanın iki veya daha fazla örneğini kullanmayacaksınız. Fakat dediğim gibi, bu durumda sınıf yapısını, geleneksel bir nesne örneği oluşturmadan, işlevleri isimlendiren bir ad olarak düşünün . Her şeyi bir sınıfta bir araya getirmek ve ya çağrı yöntemlerine ( myClass->method();
) ya da doğrudan çağrı yöntemlerine ( ) çağrı yapmak myClass::method();
, bir şeyi okunaklı, yeniden kullanılabilir bir şekilde adlandırmak için çok temiz bir yoldur.
Elbette myClass_method();
bunun yerine her zaman böyle bir şey kullanabilirsiniz , ancak bu kodun herhangi birini başka bir temada, bir eklentide veya başka bir çerçevede tekrar kullanmak istiyorsanız geri dönüp tüm öneklerinizi değiştirmeniz gerekir. Her şeyi bir sınıfta tutmak daha temizdir ve çok daha hızlı bir şekilde yeniden geliştirmenize ve yeniden konuşlandırmanıza izin verir.
Eklentilerin ad alanı için (saçma) bunu yaptığını varsayalım, ama mazeret nedir? Bir şey mi eksik?
Çoğu durumda sizinle aynı fikirdeyim. Ancak, bu çoğunluk hızla azalmaktadır. MultiSite kurulumunda aynı temanın varyasyonlarını kullanan birkaç site barındırıyorum. Küçük temalarla aynı temayı tekrar tekrar oluşturmak yerine, ana tema için tek bir "sınıfım" var ve tüm çocuk temaları o sınıfı genişletiyor. Bu, tüm ağ boyunca genel bir tekdüzelik duygusunu korurken, her site için özel işlevler tanımlamamı sağlıyor.
Bir yandan, tema geliştiricileri işlevlerini isimlendirmek için sınıf tabanlı bir yaklaşım seçebilirler (aynı kod parçalarını tekrar tekrar kullandığınız bir ortamda çalışıyorsanız saçma değildir). Öte yandan, tema geliştiriciler, alt temalar tarafından kolay genişletilebilirlik için sınıf tabanlı bir yaklaşım seçebilirler.
Böyle bir temayı kodlamanın avantajı nedir?
Sitenizde yalnızca Hybrid kullanıyorsanız, son kullanıcı olarak sizin için avantajı çok azdır. Hybrid için bir çocuk teması oluşturuyorsanız, adlandırma ve genişletilebilirliğin avantajları vardır. ThemeHybrid için çalışıyorsanız , avantaj, diğer projelerinizde (Prototip, Leviathan, vb.) Hızlı ve verimli kod kullanımında yatmaktadır.
Ayrıca, Hybrid'in belirli bir özelliğini seven ancak tüm temayı beğenmeyen bir tema geliştiricisiyseniz, avantaj, Hibrit olmayan projenizde (GPL olduğu varsayılarak) hızlı ve verimli bir kod kullanımında yatmaktadır.