home > デザインパターン >

ForNext

Only Do What Only You Can Do

Builder

VBScript

JScript

Perl

PHP

Python

Ruby

PowerShell

Scala

F#

C

C++

C++Builder

VC++

C#

Java

更新日 : 2010.11.25
■ MyClass
public class MyClass {
    private String dateOfBirth;

    public MyClass(String dateOfBirth) {
        this.dateOfBirth = dateOfBirth;
    }

    public String getDateOfBirth() {
        return dateOfBirth;
    }
}
■ MyBuilder
// 部品を作成する
public class MyBuilder {
    private String dateOfBirth;

    public MyBuilder() {
        dateOfBirth = "";
    }

    public void addYear() {
        dateOfBirth += "yyyy";
    }
    public void addMonth() {
        dateOfBirth += "mm";
    }
    public void addDay() {
        dateOfBirth += "dd";
    }
    public void addDelimiter() {
        dateOfBirth += "/";
    }

    public MyClass getMyClass() {
        MyClass result = new MyClass(dateOfBirth);
        dateOfBirth = "";
        return result;
    }
}
■ MyDirectorA
// 部品を組み合わせる
public class MyDirectorA {
    public MyClass createMyClass(MyBuilder builder) {
        builder.addYear();
        builder.addDelimiter();
        builder.addMonth();
        builder.addDelimiter();
        builder.addDay();

        return builder.getMyClass();
    }
}
■ MyDirectorB
// 部品を組み合わせる
public class MyDirectorB {
    public MyClass createMyClass(MyBuilder builder) {
        builder.addMonth();
        builder.addDelimiter();
        builder.addDay();
        builder.addDelimiter();
        builder.addYear();

        return builder.getMyClass();
    }
}
■ MyMain
public class MyMain {
    public static void main(String args[]) {
        MyBuilder builder = new MyBuilder();

        // "年月日"形式の日付
        MyDirectorA dirA = new MyDirectorA();
        MyClass myclass  = dirA.createMyClass(builder);
        System.out.println(myclass.getDateOfBirth());

        // "月日年"形式の日付
        MyDirectorB dirB = new MyDirectorB();
        myclass          = dirB.createMyClass(builder);
        System.out.println(myclass.getDateOfBirth());
    }
}
L:\>java MyMain
yyyy/mm/dd
mm/dd/yyyy

Objective-C

D

VB

VB.NET

Delphi

Ada

PL/SQL

T-SQL

関数型

inserted by FC2 system