-
Notifications
You must be signed in to change notification settings - Fork 3
Commit
- Loading branch information
There are no files selected for viewing
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,14 @@ | ||
package Creational_Pattern.Builder; | ||
|
||
public class CreateStudent { | ||
public static void main(String[] args) { | ||
Student student = new StudentConcreteBuilder() | ||
.setId(1) | ||
.setName("hoangtien2k3") | ||
.setAddress("thanh hoa") | ||
.build(); | ||
|
||
System.out.println(student); | ||
|
||
} | ||
} |
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,21 @@ | ||
|
||
## Builder Design Pattern: | ||
|
||
Ưu điểm: | ||
- Cho phép thay đổi biểu diễn nội bộ của một lớp. | ||
- Đóng gói code để xây dựng và trình bày. | ||
- Cho phép kiểm soát từng bước của quá trình xây dựng đối tượng. | ||
|
||
|
||
Nhược điểm: | ||
- Yêu cầu một ConcreteBuilder cho từng loại đối tượng khác nhau. | ||
- Các thuộc tính của đối tượng không đảm bảo rằng sẽ được khởi tạo. | ||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,17 @@ | ||
package Creational_Pattern.Builder; | ||
|
||
public class Student { | ||
private int id; | ||
private String name; | ||
private String address; | ||
private String dateOfBirth; | ||
private String phoneNumber; | ||
|
||
public Student(int id, String name, String address, String dateOfBirth, String phoneNumber) { | ||
this.id = id; | ||
this.name = name; | ||
this.address = address; | ||
this.dateOfBirth = dateOfBirth; | ||
this.phoneNumber = phoneNumber; | ||
} | ||
} |
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,10 @@ | ||
package Creational_Pattern.Builder; | ||
|
||
public interface StudentBuilder { | ||
StudentBuilder setId(int id); | ||
StudentBuilder setName(String name); | ||
StudentBuilder setAddress(String address); | ||
StudentBuilder setDateOfBirth(String dateOfBirth); | ||
StudentBuilder setPhoneNumber(String phoneNumber); | ||
Student build(); | ||
} |
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,44 @@ | ||
package Creational_Pattern.Builder; | ||
|
||
public class StudentConcreteBuilder implements StudentBuilder{ | ||
private int id; | ||
private String name; | ||
private String address; | ||
private String dateOfBirth; | ||
private String phoneNumber; | ||
|
||
@Override | ||
public StudentBuilder setId(int id) { | ||
this.id = id; | ||
return this; | ||
} | ||
|
||
@Override | ||
public StudentBuilder setName(String name) { | ||
this.name = name; | ||
return this; | ||
} | ||
|
||
@Override | ||
public StudentBuilder setAddress(String address) { | ||
this.address = address; | ||
return this; | ||
} | ||
|
||
@Override | ||
public StudentBuilder setDateOfBirth(String dateOfBirth) { | ||
this.dateOfBirth = dateOfBirth; | ||
return this; | ||
} | ||
|
||
@Override | ||
public StudentBuilder setPhoneNumber(String phoneNumber) { | ||
this.phoneNumber = phoneNumber; | ||
return this; | ||
} | ||
|
||
@Override | ||
public Student build() { | ||
return new Student(id, name, address, dateOfBirth, phoneNumber); | ||
} | ||
} |
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,12 @@ | ||
<?xml version="1.0" encoding="UTF-8"?> | ||
<module type="JAVA_MODULE" version="4"> | ||
<component name="NewModuleRootManager" inherit-compiler-output="true"> | ||
<exclude-output /> | ||
<content url="file://$MODULE_DIR$"> | ||
<sourceFolder url="file://$MODULE_DIR$" isTestSource="false" /> | ||
</content> | ||
<orderEntry type="inheritedJdk" /> | ||
<orderEntry type="sourceFolder" forTests="false" /> | ||
<orderEntry type="library" name="KotlinJavaRuntime" level="project" /> | ||
</component> | ||
</module> |