データベースへのアクセスを、すべて同じ基本実装から継承する接続クラスにカプセル化しています。この基本実装には、protected
多くの子クラスが使用するデータベースアクセス用のLINQプロバイダーがありますが、すべてではありません。独自のプロバイダーが必要な場合もあり、通常は「デフォルト」のプロバイダーを使用できません。
この「その他の」プロバイダーは、デフォルトのプロバイダーから派生したものではありませんが(ただし、それ自体はどこにも役に立たない共通の準抽象祖先を共有します)、それぞれのクラス内でまったく同じ役割を持つため、まったく同じように使用できます。つまり、同じ構文を使用できます。キーワードを使用してそれぞれのメンバーを非表示にすることでこれを達成できましたが、new
これが良い習慣かどうかはわかりません。
一方では、そうすることで、1つしかないため、誤って間違ったものを使用することを回避できます。一方、デフォルトのプロバイダーと特定のプロバイダーに同じ名前を使用することに慣れていると、実際には特定のプロバイダーの実装を忘れて、ここで使用するのが正しくないプロバイダーで作業することになります。したがって、デフォルトのものに適切な名前を付けることは理にかなっているかもしれません。特定の接続クラスを開発する人は誰でも、特定のプロバイダーをいつ使用する必要があるかを知っており、それに到達するためのコードを作成する必要があることを思い出してください。
もっともらしい理由はどれですか?私は今、後者に少し傾いています。