C'#; kısmi sınıflar kötü tasarım?
'Kısmi sınıf' kavramı var C#/VB.hatta bu yüzden merak ediyorum NET. Bir uygulama üzerinde çalışıyorum ve iş yerinde yürüttüğümüz bir okuyoruz. Büyük bir kod tabanı sağlar kitap /platform API etrafında sarıcı ve platform geliştirme ile ilgili farklı konuları öğretiyor olarak nasıl geliştiğini açıklar.
Neyse, uzun lafın kısası - C sahte çoklu kalıtım için bir yol olarak kısmi sınıflar, her yerde kullanıyor# (IMO). Sadece sınıflar birden fazla olanları içine bölünmüş ve kompozisyon kullanmak istemedi neden beni aşar. 3 'kısmi sınıf temel sınıf, her w kod/ 3-500 hatları telafi etmek için dosyaları... Ve bu onun API birkaç kez yapar. o
Bu haklı buluyor musunuz?Ben olsaydım, derdim var takip S. R. P. ve oluşturulan birden fazla sınıflar için idare gerekli farklı davranışlar, daha sonra oluşturmak için bir temel sınıf olan örnekleri bu sınıfların üyeleri olarak (örneğin kompozisyon). Neden MS bile çerçeve içine kısmi sınıf koydun?? Çıkardılar yeteneği için Genişlet/daralt tüm kod her kapsam düzeyde C# (bu izin içinde C ) çünkü belli ki sadece izin, kötü alışkanlıklar - kısmi sınıf IMO aynı şey.Benim quetion sanırım: şimdiye kadar kısmi bir sınıf kullanmak için meşru bir neden olacağını bana açıklayabilir misin?
EDİT: Web/Win için başka çaresi yok bunun farkındayım. Ama bunun dışında? Neden MS sadece kod genned tutkal için birkaç farklı anahtar kelime sınıfları togeather koymadın mı? Yoksa gerçekten hak eden tasarım okunaklı bir senaryo değil mi?
Bu rant / savaş bir iplik olmak anlamına gelmez. Honeslty burada bir şeyler öğrenmek için sabırsızlanıyorum. Ne zaman kısmi sınıfları kod tasarımı - basit bir soru, kapatmaya gerek kullanılmalıdır
Teşekkürler
CEVAP
Şimdiye kadar kısmi bir sınıf kullanmak için meşru bir neden olacağını bana açıklayabilir misin?
En meşru ve yararlı nedenlerinden biri otomatik olarak oluşturulan Kodu ve kendi özel uzantıları ayrılması teşvik etmektir. Örneğin, ortak tasarımcı bir çeşit otomatik olarak oluşturulan form kodu var, ama genellikle bunun için kendi özel davranış eklemek istiyorum. Otomatik kod bölümünü yeniden eğer, bu şekilde, belirli uzantıları olan kısmı dokunmayacaksın.
Bu, oldukça iyi bir şeyin çok önemli olduğunu söyledi. Bazı ipuçları:
Sınıflar
partial
partial
olma uğruna yapmaz.Kısmi sınıflar her yerde birbirlerine dışında koymayın. Eğer bu proje tamamen alakasız bir bölüm için sınıfın diğer yarısını görmek için atlamak zorunda kalırsanız, büyük ihtimalle yanlış yapıyorsunuz demektir.
Sınıf boyutunu gizlemek için bir yöntem olarak
partial
kullanmayın. Eğer çok büyük oldukları içinpartial
ile sınıfların ses kesiliyor, tekrar gerekirSingle Responsibility Principle.Eğer aynı sınıf için üç veya daha fazla
partial
parçaları varsa, neredeyse kısmi kötüye olduğunu garanti olur. İki tipik üst makul bağlıdır, ve genellikle otomatik olarak oluşturulan kodu elle yazılmış kod kesimi için kullanılır.
Neyse, uzun lafın kısası - C sahte çoklu kalıtım için bir yol olarak kısmi sınıflar, her yerde kullanıyor# (IMO). Sadece sınıflar birden fazla olanları içine bölünmüş ve kompozisyon kullanmak istemedi neden beni aşar. 3 'kısmi sınıf temel sınıf, her w kod/ 3-500 hatları telafi etmek için dosyaları... Ve bu onun API birkaç kez yapar. o
Evet, bu kesinlikle partial
açık bir saldırı.
Kullanıyor .Benim C 4.0 Dizilerini NET...
Bir&; sonsuz quot&; yineleyici kötü ta...
Null kötü tasarım dönüyor?...
Veritabanı Etiketleme için Tasarım...
Android 5.0 materyal tasarım stili nav...