1. ホーム
  2. .net

[解決済み] 抽象クラスの命名規則

2022-11-22 01:33:02

質問

一時期、Microsoft が推し進めたガイドラインでは、抽象クラスには "Base" という接尾辞を付けて、抽象クラスであることをわからなくしていたことをはっきりと記憶しています。そのため、次のようなクラスがあります。 System.Web.Hosting.VirtualFileBase , System.Configuration.ConfigurationValidatorBase , System.Windows.Forms.ButtonBase とか、もちろん System.Collections.CollectionBase .

しかし、最近、フレームワークの多くの抽象クラスが、この慣習に従っていないように見えることに気づきました。たとえば、以下のクラスはすべて抽象クラスですが、この規約には従っていません。

  • System.DirectoryServices.ActiveDirectory.DirectoryServer

  • System.Configuration.ConfigurationElement

  • System.Drawing.Brush

  • System.Windows.Forms.CommonDialog

これは、私が数秒のうちに作り上げたものです。そこで私は、自分が狂っていないことを確認するために、公式のドキュメントが何を言っているのか調べに行きました。その結果 クラス、構造体、およびインターフェイスの名前 で、MSDN の クラスライブラリを開発するための設計指針 . 奇妙なことに、抽象クラスの名前の最後に "Base" を追加するガイドラインについての言及は見当たりません。また、このガイドラインは、Frameworkのバージョン1.1では利用できなくなりました。

では、私は失ってしまったのでしょうか?このガイドラインはこれまで存在していたのでしょうか。一言もなく放棄されただけなのでしょうか?私はこの2年間、無駄に長いクラス名を一人で作ってきたのでしょうか?

誰か私に骨を折ってください。

更新 おかしくはない。ガイドラインは存在した。 Krzysztof Cwalinaは2005年にそれについて不平を言っています。

どのように解決するのですか?

フレームワーク設計指針 p 174に記載されています。

避ける もしクラスが公開 API で使用されることを意図している場合、ベースクラスに "Base" という接尾辞を付けることは避けてください。

また http://blogs.msdn.com/kcwalina/archive/2005/12/16/BaseSuffix.aspx