home > デザインパターン >

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

Objective-C

D

VB

VB.NET

Delphi

Ada

PL/SQL

T-SQL

関数型

inserted by FC2 system