前の記事
作ったプログラム
この記事は?
イミュータブルパターンの概要を聞いて、自作しようってお話。
前回からの内容
setする時に、新しくインスタンスを返すのはいいけど、
インスタンス(a1)の中にインスタンスの参照(b)を持ってたら、
新しく作ったインスタンス(a2)の中のインスタンスの参照は(b)のままじゃない?
やったこと
immutable-advanceディレクトリ参照。
インスタンスの参照を受け取ったら、cloneしてから保存する。
public function __construct($str, $num, $object) { $this->str = $str; $this->num = $num; $this->object = clone $object; }
これ、第三引数しかcloneしてなくない?
はい、そのとおりですううう
一旦、理解のために最低限のものを作った感じです。他は、数値や文字列なのでcloneしてないです。
でも、これですべてのインスタンスが、内包しているインスタンスに対して、別なインスタンスを持つように作れました。
参考記事
次回やること
イテレーターパターンやります!チョー有名なやつだね。
さて、まだコード一切書いてないので、これから試行錯誤していきます・・・!
while (hasNext) { $it->next(); }
で動かせるコードを頑張って書きます。