Skip to content

Instantly share code, notes, and snippets.

@fujimisakari
fujimisakari / adapter_pattern.md
Last active August 11, 2017 10:20
Adapterパターン

Adapterパターン

HeadFirstデザインパターン Index

パターンについて

オブジェクトをラップし、別のインタフェースを提供します。

※ アダプタ、デコレータ、ファサードパターンの違い
アダプタは、オブジェクトのインタフェースを変更するためにラップします。

@fujimisakari
fujimisakari / singleton_pattern.md
Last active August 11, 2017 10:20
Singletonパターン

Singletonパターン

HeadFirstデザインパターン Index

パターンについて

ただ1つだけのオブジェクトが作成されていることを保証します。

HeadFirstデザインパターンでの定義

@fujimisakari
fujimisakari / command_pattern.md
Last active August 11, 2017 10:20
Commandパターン

Commandパターン

HeadFirstデザインパターン Index

パターンについて

Commandパターンは、リクエストを行うオブジェクトと、その実行方法を
知っているオブジェクトを分離させます。
そして、どのリクエストにも対応できるよう共通のAPIを持ち合せており
異る種類のリクエストでも同様の呼び出しでアクションを実行させることできる

@fujimisakari
fujimisakari / factory_method_pattern.md
Last active August 11, 2017 10:20
FactoryMethodパターン

FactoryMethodパターン

HeadFirstデザインパターン Index

パターンについて

サブクラスが作成する具象クラスを決定します。
インスタンス化したいオブジェクト(製品)を実行時の条件によって決めたい場合に利用します。
ただ、FactoryMethodパターンはオブジェクト(製品)を生成する側と利用する側を分けて定義する必要があります。
分けておくことで、将来システムに起こり得る変更をあらかじめ分離でき保守性を保つことができます。

@fujimisakari
fujimisakari / observer_pattern.md
Last active August 11, 2017 10:19
Observerパターン

Observerパターン

HeadFirstデザインパターン Index

パターンについて

状態が変化したときにオブジェクトへ通知します。
あるオブジェクト(通知元)の状態変化を不特定多数のオブジェクト(通知先)に知らせたいときに利用します。
監視対象オブジェクトを中継させることで、通知元オブジェクトは通知先オブジェクトのことを知らなくても定義できます。

HeadFirstデザインパターンでの定義

@fujimisakari
fujimisakari / strategy_pattern.md
Last active August 11, 2017 09:50
Strategyパターン

Strategyパターン

HeadFirstデザインパターン Index

パターンについて

Strategyパターンは交換可能な振舞いをカプセル化し、委譲を使って使用すべき振舞いを決定します。
主要な処理を行っているコードの中で一部動的に振舞いを変更させたい場合に利用し、
コードの中で動的に振舞い変更したい場合は、if文なので条件分岐しがちになりますが
Strategyを利用することで主要な処理に対して影響を与えず、1つのステートメントで動的な振舞いを定義することができます。

@fujimisakari
fujimisakari / abstractfactory.png
Last active August 11, 2017 09:48
HeadFirstデザインパターンの画像
abstractfactory.png

Erlangプログラミングについて

Erlangプログラミングを読みながら特徴を随時更新していく感じ

Erlangの特徴

  • 関数型プログラミング言語の中でも文法がとっつきやすい
  • 20年を越える歴史がある
  • 高度な信頼性が要求される通信機器の分野でも実績がある

プログラミングErlang - 基本1

2章〜3章あたり。
基本的なシンタックスの種類やルールなど

変数

  • 変数名は大文字でなければならない
  • 単一代入変数なので、一度しか値を代入できない
  • 変数のスコープは、変数が定義されている構文単位になる
    • 例えば、Xが関数の1つの節の中で使われている場合、その値は節の外には漏れない

プログラミングErlang - 基本2

3章あたり。
Erlangの簡単な逐次的なコードやパターン照合に関する考え方を関数定義で使う方法を学ぶ

fun(無名関数)

  • funの引数は何個でもよい
  • 引数の個数を間違っているとエラーになる