生成者パターンについて
オブジェクトを内部に含まれるオブジェクトまで完全に複製したいのですが?
[S027 A-05]
clone() メソッドを再実装して実現します。
実装の詳細は、対象とするオブジェクトの構造に依存するため一般的な方法
はありません。
オブジェクトが java.lang.Serializable インターフェースを実装している
場合は、ObjectOutputStream ObjectInputStream を用いることで完全な複製
を作成することもできます。
以下 targetObject を複製して copyObject に取得する際のサンプルコード
です。(例外処理は除く)
ByteArrayOutputStream bos = new ByteArrayOutputStream();
ObjectOutputStream oos = new ObjectOutputStream(bos);
oos.writeObject(targetObject);
ObjectInputStream ois = new ObjectInputStream(
new ByteArrayInputStream(bos.toByteArray()));
copyObject = bis.readObject();
参考資料:
On Japan Site
prototype デザイン パターンの説明 (Java)
http://www.techscore.com/tech/DesignPattern/Prototype.html http://www.pc-view.net/Solution/040120/page104.html prototype デザイン パターンの説明 (JavaScript)
http://d.hatena.ne.jp/naoya/20050813/1123961196 protorypeについて、shollow copy とdeep copyの議論
http://www-step.kugi.kyoto-u.ac.jp/~futaana/Briefcase/Java/clone.html クラスObjectのメソッドcloneの使い方
http://www.javaworld.jp/technology_and_programming/-/27077.html On China Site
http://www.umlchina.com/best/g25/u1128448.htm On English Site
http://www.umlchina.com/best/g25/u1128448.htm abtract factory解析
http://cvs.m17n.org/~akr/mj/design-pattern/AbstractFactory.html abstract factory
http://www.pc-view.net/Solution/040120/page29.html
テーマ : 思ったこと、考えたこと - ジャンル : ブログ