2011年11月26日土曜日

( デザインパターン )シングルトンパターンとか

今日はデザインパターンをメモします。
というのも独習デザインパターンが格安で手に入ったからです。
Javaで書かれていますがJavaの気分じゃないのでC#で書きます。

シングルトンパターンはその名の通りオブジェクトが一つであることを保証するというものと書かれています。

public class CourtScheduler
{
    private static CourtScheduler courtScheduler = new CourtScheduler();
    private string[] schedule;
    public static int HOURS = 24;

    private CourtScheduler()
    {
        initialize();
    }

    public static CourtScheduler getInstance()
    {
        return courtScheduler;
    }

    private void initialize()
    {
        schedule = new string[24];
        for (int i = 0; i < HOURS; i++)
            schedule[i] = "";
    }

    public string getSchedule(int hour)
    {
        return schedule[hour];
    }

    public void setSchedule(int hour, string person)
    {
        schedule[hour] = person;
    }
} 

理解のために重要なのは
private static CourtScheduler courtScheduler = new CourtScheduler();
private CourtScheduler(){...}
public static CourtScheduler getInstance(){...}
で 、これらがオブジェクトを勝手に複数作らせないようにしている。
呼び出し側がオブジェクトを管理しなくていいというメリットもあるそうです。