nprogram’s blog

気ままに、プログラミングのトピックについて書いていきます

デザインパターン

Observerパターン [C#] [pull型]

Observerパターンとは あるオブジェクトの状態に依存するオブジェクトがあるとき、状態の変化をそれらのオブジェクトに依存せずに自動的に通知するパターン push型とpull型 Observerパターンでは,push型とpull型があります。違いは以下のとおり。 push型 : …

Observerパターン [C#] [push型]

Observerパターンとは あるオブジェクトの状態に依存するオブジェクトがあるとき、状態の変化をそれらのオブジェクトに依存せずに自動的に通知するパターン push型とpull型 Observerパターンでは,push型とpull型があります。違いは以下のとおり。 push型 : …

Nullチェックを削除する方法 (NullObjectパターンとNull合体演算子)

はじめに Nullチェックを削除する方法はいくつかあります。最適な方法を使用してください。 NullObjectパターン オブジェクト指向プログラミングが使えれば、どの言語でも実現可能 Null合体演算子 言語仕様にNull合体演算子があれば可能 その他の方法 Javaの…

switch文を爆散

はじめに コードのあちこちに同じようなswitch文処理が書かれている場合があります。 機能追加・修正するたびに変更が必要なswitch文処理を探してコード修正しなくてはなりません。 このようなswitch文処理を見つけたら、ポリモーフィズムが使うことで、リフ…

Chain of Responsibility [C#]

Chain of Responsibility Chain-of-responsibility パターン, CoR パターンは、オブジェクト指向設計におけるデザインパターンの一つであり、一つの コマンドオブジェクトと一連の 処理オブジェクトから構成される。 各処理オブジェクトは、処理できるコマン…

Facadeパターン

はじめに Facadeパターンはこの記事が非常にわかりやすいと思います。 qiita.com

Stateパターン [C#]

はじめに 状態を多く持ち、状態ごとの操作の動作が異なるプログラムで、恐ろしく長い条件分岐処理(if文, switch文)を見かけたことはありませんか? 私はよくあります。(^_^;) たとえば、簡単な電気ポットのプログラムがあるとします。このプログラムでは、以…

Compositeパターン [C#]

Compositeパターン Compositeパターンは、容器と中身を同一視して、再帰的な構造を作るパターンです。 利用者は容器と中身を意識せずに使用することができます。 Compositeパターンを使用しない場合は、容器と中身を意識する必要がある。 コード例では、Dire…

Abstract Factory パターン [C#]

Abstract Factory パターン [C#] Abstract Factory パターンを記載します。 Abstract Factoryパターンを使うことによって、クラスの使用者は、具象クラスを直接扱わずに、具職クラスのインスタンスを取得できる。 (Main関数で扱っているのは、抽象クラスのみ…

Factory Methodパターン [C#]

Factory Methodパターン インスタンス化したいオブジェクト(製品)を実行時の条件によって決めたい場合に利用します。 Factory Methodパターンはオブジェクト(製品)を生成する側と利用する側に分けて定義する必要があります。 分けておくことで、将来システム…

Simple Factory (C#)

Simple Factoryパターンについて 実際にはデザインパターンではありません。プログラミングのイディオムとなります。 クラス図 実行イメージ Cheeseピザの材料を準備します。 Cheeseピザを焼きます。 Cheeseピザをカットします。 Cheeseピザを箱に収納します…

Template Method パターン [C#]

TemplateMethodパターンとは Template Method パターンの目的は、ある処理のおおまかなアルゴリズムをあらかじめ決めておいて、 そのアルゴリズムの具体的な設計をサブクラスに任せることである。そのため、システムのフレームワークを構築するための手段と…

Observerパターンについて [C++]

Observerとは、英語で観察者を意味します。 Observer パターンとは、状態の変化を観察することを目的としたものですが、どちらかというと「観察」よりも「通知」に重点の置かれたものになっています。 あるインスタンスの状態が変化した際に、そのインスタン…

Strategy Patternについて [C++]

はじめに Qiitaに本記事を書き直しました。 Strategyパターン [C#][C++] - Qiita

デザインパターン入門 (リンク編)

はじめに (書籍の紹介) HeadFirstデザインパターンの本のコードのサンプルは、GitHubにあります。 http://www.wickedlysmart.com/headfirstdesignpatterns/code.htmlgithub.com リンク1 codezine.jp パターン指向リファクタリング 読書メモ - mookjp.io リン…