Benim düşüncem, programın uzun vadeli istikrarını ve sürdürülebilirliğini daha iyi hale getirmek için yazmanız gereken her şeyi yazmanız gerektiğidir . Bugün 20 satır kod yazmaktan kaçınmanın anlamı nedir, eğer bu kodu kullanan bir şeye her dokunduğunuzda veya bu Sınıfı korumak için geri döndüğünüzde, bugün zaman ayırmadığınız için size fazladan 5 dakika veya daha fazla ücret ödersiniz?
O zaman soru "ne yazman gerekiyor?" Bence yeterince bilgi sadece o bazı şeyleri listeleriz böylece, kesin bir cevap vermek mümkün sağlamak sanmıyorum ben bir karar içinde düşünmek olacaktır:
1. Trailer nesnesinin tek başına, şimdi veya öngörülebilir gelecekte olması gerekiyor mu?
Öyleyse, sarmalayıcıyı her iki kompozit nesnenin etrafında yapmak için oldukça iyi bir argümanınız var, çünkü zaten birini veya diğerini sarmanız gerekecek. Tutarlı da olabilir.
2. Kodun bir alanında geliştiricilerin sık sık girdiği veya böyle olması muhtemel olan üç alandan herhangi biri (Araba, Römork, CarWithTrailer) var mı?
Eğer öyleyse, çok dikkatli olun, çünkü yanlış olanı seçmenin sonuçları, koda her dokunulduğunda çok maliyetli olarak amorti edilebilir. Değilse, hiç birşey fark olmayabilir neyi siz karar verin. Sadece bir yön seç ve onunla git.
3. Anlaması en kolay olan nedir?
Bir yaklaşım size arkadan gelen birinin derhal yapmaya çalıştığınız şeyi "alacağını" söylüyor mu? Takım arkadaşlarınızın bir yaklaşımı sürdürmelerini zorlaştırabilecek belirli önyargıları var mı? Her şey eşitse, en düşük bilişsel yükü empoze eden çözümü seçin.
4. Bir yaklaşımı diğerine göre kullanmanın başka avantajları var mı?
Bana atlayan bir şey, CarWithTrailerWrapper'ınızın herhangi bir arabayı ve herhangi bir römorku bir CarWithTrailer'a sarılabileceğini yazarsanız, sarmalayıcı fikrinin belirgin bir avantajı olmasıdır. Ardından, tüm geçiş yöntemlerinizi yazmanız gerekir, ancak bunları her Araba Sınıfı için bir kez değil, yalnızca bir kez yazarsınız .
Bu, daha fazla Otomobil ve Römork ekledikçe doğrudan geçiş yöntemlerini yazma konusundaki ilk yatırımınızı daha ucuz hale getirir. Ayrıca, yalnızca bir uygulama ile daha fazlasını yapabileceğiniz için, işleri doğrudan Volvo veya VolvoWithTrailer ile birleştirmeye yönelik cazibenin azaltılmasına yardımcı olurken, CarWithTrailerWrapper'a bağlanmanın sonuçlarını da azaltır.
Belki de uzantı yöntemini kullanarak ücretsiz olarak alacağınız belirgin avantajlar vardır, ancak onları görmüyorum.
Tamam, bu yüzden önemsiz uygulamalar için kendimi ilerlemeye ve geçiş yöntemlerini doldurmaya doğru konuştuğum anlaşılıyor.
Ben bir C ++ programcısı değilim, bu yüzden hangi kod oluşturma araçlarının kullanabileceğiniz hakkında hiçbir fikrim yok. Kullandığım IDE, bir Arayüzden yöntemler üretebilir ve doğrudan geçişleri ağrısız hale getirecek kod şablonları ekleyebilirim . Bunu yapan bir IDE'ye erişiminiz yoksa, Excel'in sizin için kod yazmasına izin verebilirsiniz .