...ing logging 4.0

はてなブログに移行しました。D言語の話とかいろいろ。

2010-11-03から1日間の記事一覧

Null object Pattern

メソッドを呼ぶ前にnullチェックを呼ばなくてもよくするパターン. import std.stdio; // 誰かが作って中身を変えられないコード //////// enum 乱数 = 1; interface I { void m(); } class A : I { override void m(){ writeln("hi"); } } I foo(){ if (乱…

Decorator pattern

インスタンスを包含して機能を拡張するパターン. import std.stdio; interface Ice { string name(); } class VanillaIce : Ice { override string name() { return "バニラアイス"; } } class ChocorateSomeIce : Ice { Ice ice; this(Ice ice) { this.ice…

Composite pattern

入れ物と中身を同一視するパターン. import std.stdio; interface Element { uint countChilds(); void append(Element c); } class Folder : Element { private Element[] elems; override uint countChilds() { uint sum; foreach (c; elems) { sum += 1 …