Created
December 27, 2011 17:30
-
-
Save thunklife/1524476 to your computer and use it in GitHub Desktop.
Simple DSL for building up a Person
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| public static class PersonFactory | |
| { | |
| public static FirstNameExpression CreatePerson() | |
| { | |
| return new FirstNameExpression(new Person()); | |
| } | |
| } | |
| public class FirstNameExpression | |
| { | |
| private Person _person; | |
| public FirstNameExpression(Person person) | |
| { | |
| _person = person; | |
| } | |
| public MiddleNameExpression WithFirstName(string first) | |
| { | |
| _person.FirstName = first; | |
| return new MiddleNameExpression(_person); | |
| } | |
| } | |
| public class MiddleNameExpression | |
| { | |
| private Person _person; | |
| public MiddleNameExpression(Person person) | |
| { | |
| _person = person; | |
| } | |
| public LastNameExpression WithMiddleName(string middle) | |
| { | |
| _person.MiddleName = middle; | |
| return new LastNameExpression(_person); | |
| } | |
| } | |
| public class LastNameExpression | |
| { | |
| private Person _person; | |
| public LastNameExpression(Person person) | |
| { | |
| _person = person; | |
| } | |
| public Person WithLastName(string last) | |
| { | |
| _person.LastName = last; | |
| return _person; | |
| } | |
| } |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment