Wyraźnie pamiętam, że kiedyś wytyczną forsowaną przez Microsoft było dodanie sufiksu „Base” do klasy abstrakcyjnej, aby uniknąć faktu, że jest abstrakcyjna. Stąd mamy zajęcia jak System.Web.Hosting.VirtualFileBase
, System.Configuration.ConfigurationValidatorBase
, System.Windows.Forms.ButtonBase
, i, oczywiście System.Collections.CollectionBase
.
Ale ostatnio zauważyłem, że wiele klas abstrakcyjnych we frameworku wydaje się nie przestrzegać tej konwencji. Na przykład wszystkie poniższe klasy są abstrakcyjne, ale nie przestrzegają tej konwencji:
System.DirectoryServices.ActiveDirectory.DirectoryServer
System.Configuration.ConfigurationElement
System.Drawing.Brush
System.Windows.Forms.CommonDialog
I właśnie to mogłem zdobyć w kilka sekund. Poszedłem więc sprawdzić, co ma do powiedzenia oficjalna dokumentacja, aby upewnić się, że nie jestem szalony. Znalazłem nazwy klas, struktur i interfejsów w witrynie MSDN na stronie Wytyczne projektowe dotyczące tworzenia bibliotek klas . Co dziwne, nie mogę znaleźć żadnej wzmianki o wytycznej dodawania „Base” na końcu nazwy klasy abstrakcyjnej. Wytyczne nie są już dostępne dla wersji 1.1 platformy.
Więc czy ja to tracę? Czy te wytyczne kiedykolwiek istniały? Czy po prostu został porzucony bez słowa? Czy przez ostatnie dwa lata samodzielnie tworzyłem długie nazwy klas?
Ktoś rzucił mi tu kość.
Aktualizacja Nie jestem szalony. Wytyczne istniały. Krzysztof Cwalina narzekał na to w 2005 roku.