1.C#、VB.NET-5.オブジェクト指向-6.デザインパターンFacadeパターンは現在でもしばしば使われるくらい、結構メジャーなパターンです。Facadeは「玄関」や「窓口」と言われ、その名の通りプログラムの各所から利用される一つのクラスを仲介するパターンです。1.C#、VB.NET-5.オブジェクト指向-6.デザインパターンインスタンスを複数作成しないで、どのクラスからも同じインスタンスを見に行くといった場合は静的クラスを利用します。VB.NETの場合はモジュールがほぼ同じような役割(全く一緒ではない)です。1.C#、VB.NET-5.オブジェクト指向-6.デザインパターン以下に一つでも当てはまる方は、プログラミング設計を少し勉強した方が良いかもしれません。1.C#、VB.NET-5.オブジェクト指向-3.ポリモーフィズムインターフェースでポリモーフィズムを実現します。インターフェースはクラスの規程のみを定めたものとなる為、抽象クラスと同様にポリモーフィズムを比較的容易に実現することが可能です。1.C#、VB.NET-5.オブジェクト指向-5.インターフェースクラスを継承した時に仮想メソッドであれば派生先でオーバーライドできることは説明しました。この時、派生先で最初からオーバーライドありきで設計されたメソッドを抽象メソッドと呼びます。継承された派生クラスは基底クラスのメソッドを(protected以上であれば)自由に利用することができますが、コンストラクタは通常のメソッドと異なり、サブクラスで暗黙的に利用できるようにはなりません。1.C#、VB.NET-5.オブジェクト指向-1.継承クラスの継承をすると基底クラスのフィールドやメソッドは(protected以上であれば)派生クラスからでも自由に利用することができますが、コンストラクタは少し挙動が異なります。1.C#、VB.NET-5.オブジェクト指向-5.インターフェースクラスの特定機能を保証(強制)する仕組みをインターフェースと言います。有名なインターフェースといえばIDisposableインターフェースですね。1.C#、VB.NET-5.オブジェクト指向-3.ポリモーフィズム継承を利用したポリモーフィズムの実現です。デリゲートの場合はクラス内でも別クラスでも使えますが、継承は別クラスの場合に有効です。1.C#、VB.NET-1.C#、VB.NETの違い一つのデリゲートで複数のメソッドを連続で実行することをマルチキャストデリゲートと呼びます。これによってメソッドを任意のタイミングで追加して最後に実行するような処理も簡潔に書くことができます。1.C#、VB.NET-1.C#、VB.NETの違いVB.NETにはオーバーライドに似たような機能でシャドウがあります。オーバーライドとシャドウは機能としては似ているかもしれませんが、使用される意味としては全くの別物です。初学者は混同しがちなので注意して下さい。1.C#、VB.NET-5.オブジェクト指向-4.オーバーライド派生クラスで基底クラスメソッドをオーバーライドされた場合、処理は派生クラス側で上書きされてしまいますが、別に基底クラスメソッドが消えるわけではなくちゃんと呼び出すことが可能です。1.C#、VB.NET-5.オブジェクト指向-4.オーバーライドよく間違えるNo1のオーバーライドです。「オーバーロード」とよく間違えて使う人がいますが、この二つ全く意味が違いますので混同しないように注意しましょう。オーバーライドはオブジェクト指向の「継承」分野で必要な機能となります。5.演習・課題-3.リファクタリングデリゲート使用の説明1共通処理の場面で以下のコードを最後に紹介しましたが、実はこのコードには続きがあります。前回紹介したコードは以下の通り。1.C#、VB.NET-5.オブジェクト指向-2.デリゲートデリゲートの使いどころとして、前回は共通処理をまとめる話をしました。今回は2つ目「保留」です。前回はクラスの継承について説明しましたが、フォームもクラスなわけなので継承可能です。コードを継承する場合と違い、コントロールを継承する場合は少しひと手間必要です。5.演習・課題-3.リファクタリングデリゲートは作成するアプリケーションの性質によっては全くお目にかからない(使う必要にならない)機能ですので、イマイチ使いどころが分からないかもしれません。そこで、デリゲートの恩恵が受けられる場面を3回に渡って説明しようと思います。1.C#、VB.NET-5.オブジェクト指向-2.デリゲート前回、デリゲートの基本的な使い方であるメソッドを型のような形で保持させ使う話をしました。デリゲートは他にも匿名メソッドやラムダ式でそのまま使う事が可能です。1.C#、VB.NET-5.オブジェクト指向-2.デリゲートデリゲートを本やサイトを調べると、「委譲」であったり、「代表者」、はたまた「C言語の関数ポインタ」という難しい表現が出てきます。分かりにくいですよね。読み進めると何が書いてあるか分からなくなるのがデリゲートです。継承にはクラス、Windowsフォーム、WEBフォームと大きく分けて3種類あります。今回はクラスの継承のお話しです。継承の中でも一番基礎的な部分となります。ブログを報告するスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。