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