データフロー変数 (Oz) で実現する Producer-Consumer Pattern

以下の記事の続編です. Java で Producer-Consumer Pattern を実装してみた | Futurismo 前回は, Java の 共有メモリモデルを利用して Producer-Consumer Pattern を実装した. 今回は, Oz のもつ決定性データフローモデ...

December 14, 2014 · 1 min · tsu-nera

Adapter, Facade, Proxy パターンの違いのメモ

はじめに Gof のデザインパターンで Adapter, Facade, Proxy があり, 違いがわからなかったので, 整理してみた. まずは定義から Adapter インタフェースを変換することにより, イン...

December 13, 2014 · 2 min · tsu-nera

ConcurrentModificationException が Java で発生したときの対処方法

はじめに ConcurrentModificationException が Java で発生したときの対処方法. 以下のようなコードを実行すると, 例外発生. import java.util.Set; import java.util.HashSet; public class ConcurrentModification { public static void main (String[] args) { Set<Integer> set = new HashSet<Integer>(); for (int i = 0; i < 5; i++)...

December 12, 2014 · 1 min · tsu-nera

JUnit のテストケースをステートフルで利用する

はじめに JUnit で, 結合テスト (Integration test), シナリオテストを書きたい. トランザクションごとに長いテストを書く必要がある. 複数のトランザクションを順に処理して...

December 11, 2014 · 2 min · tsu-nera

Factory Method と Abstract Factory の違いを順に理解する

はじめに デザインパターンにでてくる Factory Method と Abstract Factory. なんだか, いつになっても違いが分からない… というわけで一旦整理してみることにした....

December 10, 2014 · 5 min · tsu-nera

Java に Pair はないの?

はじめに 2 つの Key をもつ Map を利用したい. たしか, C++ には Pair があった. Java にはないの? 結論 ない. じゃあどうするか? 自分で作成するしかない! class Pair<F, S> { public...

December 9, 2014 · 2 min · tsu-nera

状態ありはプロトタイプパターンで, 状態なしはファクトリメソッドで実装 (Java)

はじめに だんだん, タイトルが毎回同じになってきた. 今回はプロトタイプパターンの実装を Java で実施してみた. Prototype パターン 生成するオブジェクトの原型を...

December 8, 2014 · 3 min · tsu-nera

Java で Iterator Pattern を実装してみた

はじめに 最近, Gof のデザインパターンをすべて記事にしようと考えている. そんなわけで, 今日は Iterator パターン. あまりに基本すぎて, 記事にするほどではな...

December 8, 2014 · 2 min · tsu-nera

Java で Chain of Responsibility Pattern を 末尾再帰で実装した

はじめに Chain of Responsibility Pattern という, マイナーな Gof のパターンがある. 本をよんでみて, これって再帰関数を利用すればもっとシンプルにかけるんじゃないかとおもっ...

December 8, 2014 · 3 min · tsu-nera

Java におけるポリモーフィズムの整理

はじめに Haskell で型クラスというものを勉強した. その延長で, 今までとてもいい加減に理解していた Java のポリモーフィズムについて再度復習した. なんか, 用...

December 7, 2014 · 4 min · tsu-nera