ForNext
Only Do What Only You Can Do
Flyweight
VBScript
JScript
Perl
PHP
Python
Ruby
PowerShell
Scala
F#
C
C++
C++Builder
VC++
C#
Java
更新日 : 2010.11.25
■ MyAlbum
public class MyAlbum { public String albumName; public String musicName; public MyAlbum(String albumName) { this.albumName = albumName; } }
■ MyPool
public class MyPool { private Map<String, MyAlbum> pool; public MyPool() { pool = new HashMap<String, MyAlbum>(); // 予め プールしておく pool.put("TWIST", new MyAlbum("TWIST")); pool.put("ROCK'N'ROLL", new MyAlbum("ROCK'N'ROLL")); } public void putAlbum(MyAlbum album) { pool.put(album.albumName, album); } public MyAlbum getAlbum(String albumName, String musicName) { MyAlbum album = pool.get(albumName); // 予め プールしておいたものだけ、使用可能 if (album != null) { // 共有オブジェクトを書き換え album.musicName = musicName; } return album; } }
■ MyMain
public class MyMain { public static void main(String args[]) { MyPool pool = new MyPool(); MyAlbum album = pool.getAlbum("TWIST", "サイコーな Rock You!"); if (album != null) System.out.println(album.albumName + ", " + album.musicName); album = pool.getAlbum("ROCK'N'ROLL", "トレジャー・ハンター"); if (album != null) System.out.println(album.albumName + ", " + album.musicName); album = pool.getAlbum("ONLY ONE", "ONLY ONE"); if (album != null) System.out.println(album.albumName + ", " + album.musicName); album = pool.getAlbum("TWIST", "Shake Me"); if (album != null) System.out.println(album.albumName + ", " + album.musicName); } }
L:\>java MyMain TWIST, サイコーな Rock You! ROCK'N'ROLL, トレジャー・ハンター TWIST, Shake Me