デザインパターン

C#でストラテジーパターンを用いてメソッドの複雑性を下げる

現実は紹介する例より圧倒的に複雑かと思いますが、以下のような状況でC#で利用できるデザインパターンの一つである、ストラテジーパターンを使ったリファクタリングの方法を紹介したいと思います。 あるメソッドに長大な処理が書かれている メソッド内であ…

C#でストラテジーパターンを実装する

GoF(The Gang Of Four)の23デザインパターンのうちのひとつ、Strategy パターンをC#で実装する方法を紹介したいと思います。 増補改訂版 Java言語で学ぶデザインパターン入門作者: 結城浩出版社/メーカー: SBクリエイティブ発売日: 2014/03/12メディア: Ki…

C#でTemplate Methodパターンを実装する

GoFのデザインパターンの中でも、振る舞いに関するパターンの1つであるTemplate MethodパターンをC#で実装したいと思います。 Template Methodパターンとは? Template Methodパターンとは、処理の手順を基底クラスで決めておいて、具体的な動作を後から派生…

【C#】staticクラスとシングルトン考察

C# には言語固有機能として static クラスという機能があります。クラス自体を static と宣言することで、インスタンス作成を禁止し、static 宣言したクラスのインスタンスが複数作成できないようにできます。ですがこの機能、デザインパターンにあるシング…

【C#】Proxyパターン再考

前にも記事を書いたのですが、最近人に説明しよとうとしたら案外覚えてなかったのでどんなものか復習したのでアウトプットしてみました。 Proxyパターンとは? GoFのデザインパターンに収録されているパターンの一つです。Proxyは「代理人」という意味を持ち…

【C#】Proxyパターンを実装する

Proxy パターンで Proxy と RealSubject が等価で交換可能という事を忘れて変なコードを書いていたので再確認です。以下 C# の実装例です。 // 共通インターフェース定義 public interface IProxy { string Foo(string message); } // プロキシじゃないほう …