1010class UserBuilder implements Builder {
1111 private $ model ;
1212 public $ data ;
13- public function __construct (){
14- $ this ->model = new UserModel ;
13+ public function __construct ($ model = null ){
14+ if ($ model === null ) {
15+ $ this ->model = new UserModel ;
16+ } else {
17+ $ this ->model = $ model ;
18+ }
1519 }
16- public function setName ($ name ){
20+ public function setName ($ name ) : Builder {
1721 $ this ->model ->set ('name ' ,UserName::main ($ name ));
22+ return new UserBuilder ($ this ->model );
1823 }
19- public function setAge ($ age ){
24+ public function setAge ($ age ) : Builder {
2025 $ this ->model ->set ('age ' ,UserAge::main ($ age ));
26+ return new UserBuilder ($ this ->model );
2127 }
22- public function setLevel ($ level ){
28+ public function setLevel ($ level ) : Builder {
2329 $ this ->model ->set ('level ' ,UserLevel::main ($ level ));
30+ return new UserBuilder ($ this ->model );
2431 }
25- public function setLocation ($ location ){
32+ public function setLocation ($ location ) : Builder {
2633 $ this ->model ->set ('location ' ,UserLocation::main ($ location ));
34+ return new UserBuilder ($ this ->model );
2735 }
28- public function setTodo ($ role = 'member ' ){
36+ public function setTodo ($ role = 'member ' ) : Builder {
2937 $ this ->model ->set ('todo ' ,UserTodo::main ($ role ));
38+ return new UserBuilder ($ this ->model );
3039 }
31- public function build (){
32- $ this -> data = $ this ->model ->data ;
40+ public function build () : array {
41+ return $ this ->model ->data ;
3342 }
3443}
0 commit comments