コンピュータ C#でデザインパターン「Stateパターン」 オブジェクトの内部状態に応じて振る舞いを変更し、状態遷移をクラスとして表現するパターンです。ウィキペディアの「Stateパターン」のページサンプルコード/// <summary>/// Stateパターンのサンプルコード/// </summ... 2025.05.04 コンピュータ
コンピュータ C#でデザインパターン「Strategyパターン」 Strategyパターンは処理のアルゴリズムをカプセル化し、実行時に切り替えることを目的としたパターンです。ウィキペディアの「Strategyパターン」のページサンプルコード/// <summary>/// Strategyパターンのサンプ... 2025.05.03 コンピュータ
コンピュータ C#でデザインパターン「TemplateMethodパターン」 クラスが提供する機能(TemplateMethod)を実現するため、その実装の一部をサブクラスに任せることで、コードの柔軟性と再利用性を高めるパターンウィキペディアのTemplateMethodパターンのページサンプルコード/// <sum... 2025.05.03 コンピュータ
コンピュータ C#でデザインパターン「Visitorパターン」 Visitorパターンは、既存のクラスの構造を変更することなく、それらのクラスに対する新しい操作(メソッド)を外部から追加することを目的としたデザインパターンみたいです。Wikipediaの「Visitorパターン」サンプルコード/// <... 2025.05.03 コンピュータ
コンピュータ C#でデザインパターン「Compositeパターン」 Compositeパターンと言ったらファイルシステムでしょう。ということでサンプルコードを作成してみました。using System.ComponentModel;using System.Runtime.CompilerServices;... 2025.05.02 コンピュータ
コンピュータ C#でデザインパターン「AbstractFactoryパターン」 GUIのアプリケーションを作成する場合、ButtonやLabelなどのコントロールを配置すると思いますが、OSなどプラットフォームごとに生成するオブジェクトが異なる場合でも、生成する過程を抽象化することで同じ生成コードが適用できるようにする... 2025.05.02 コンピュータ
コンピュータ C#ででデザインパターン「FactoryMethodパターン」 オブジェクトの生成工程と生成するクラスを分離したパターン。クラスを差し替えたりすることで、開発と本番環境の切り替えなどがスムーズに出来るようです。サンプルコード/// <summary>/// FactoryMethodパターンのサンプルコ... 2025.05.02 コンピュータ
コンピュータ C#でデザインパターン「Facadeパターン」 複数のオブジェクトのメソッドを決まった手順で実行する処理がある場合、Facadeオブジェクトで手順を実行するメソッドとすることで、シンプルなインターフェイスを提供する目的。プログラミングで関数(メソッド)やサブルーチンを作る目的と同じ感じで... 2025.05.01 コンピュータ
コンピュータ C#でデザインパターン「Mediatorパターン」 オブジェクト同士で通信する場合、Mediatorというオブジェクトを介して通信を行うパターン。/// <summary>/// Mediatorパターンのサンプルコード/// </summary>class MyMediator{ Dict... 2025.05.01 コンピュータ
コンピュータ C#でデザインパターン「Prototypeパターン」 文章を作成する際、過去に似たいような文章を流用し、異なる部分だけを修正することがあります。これをオブジェクト指向プログラミングを表現するのが「Prototypeパターン」のようです。生成済みのオブジェクトをコピーし、新しいオブジェクトを作る... 2025.04.30 コンピュータ
コンピュータ C#でデザインパターン「Flyweightパターン」 Flyweightパターンは、オブジェクトに共通の属性がある場合、その属性のオブジェクトを一つ作りそれを参照すると、一か所に集約されるため、一か所を編集するだけで参照している全てのオブジェクトに反映されます。また、参照ですのでメモリの節約に... 2025.04.30 コンピュータ
コンピュータ C#でデザインパターン「Interpreterパターン」iniファイルから連想配列へ 昔のWindows系OSで設定用のファイルとしてiniファイルがありました。[Section1]Key1=Value1Key2=Value2[Section2]AnotherKey=AnotherValueこちらの書式を連想配列に変換してみ... 2025.04.25 コンピュータ
コンピュータ C#のリフレクションを使って異なるクラスのオブジェクトの同名プロパティの値をコピーしてみる。 異なるオブジェクトで同名プロパティの値をコピーすることがあり、プリミティブな形なのでリフレクションで上手いこと処理できないかと思いコードを書いて見ました。class MyClassA{ public string Name { get; s... 2025.04.20 コンピュータ
コンピュータ C#のプロジェクトディレクトリのサブディレクトリは自由に作成出来る。 プロジェクトディレクトリにソースファイルが複数保存されることになりますが、そのファイルをサブディレクトリで分類することができます。基本的にエクスプローラーでサブディレクトリを作成し移動するだけで良いみたいです。ただ、WPFのMainWind... 2025.04.19 コンピュータ