SORU
19 Mart 2010, Cuma


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
19 Mart 2010, Cuma


Ş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çin partial 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ı.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Charles Nesson

    Charles Ness

    27 NİSAN 2006
  • CorridorDigital

    CorridorDigi

    17 Mayıs 2010
  • The Brister

    The Brister

    10 ŞUBAT 2008