Skip to content

Commit

Permalink
update
Browse files Browse the repository at this point in the history
  • Loading branch information
hoangtien2k3 committed Nov 2, 2023
1 parent 542c763 commit f3fb07d
Show file tree
Hide file tree
Showing 14 changed files with 294 additions and 0 deletions.
3 changes: 3 additions & 0 deletions .idea/.gitignore

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

6 changes: 6 additions & 0 deletions .idea/kotlinc.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

23 changes: 23 additions & 0 deletions .idea/libraries/KotlinJavaRuntime.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

6 changes: 6 additions & 0 deletions .idea/misc.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

8 changes: 8 additions & 0 deletions .idea/modules.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

124 changes: 124 additions & 0 deletions .idea/uiDesigner.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

6 changes: 6 additions & 0 deletions .idea/vcs.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

14 changes: 14 additions & 0 deletions Creational_Pattern/Builder/CreateStudent.java
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);

}
}
21 changes: 21 additions & 0 deletions Creational_Pattern/Builder/REAMDE.md
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.









17 changes: 17 additions & 0 deletions Creational_Pattern/Builder/Student.java
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;
}
}
10 changes: 10 additions & 0 deletions Creational_Pattern/Builder/StudentBuilder.java
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();
}
44 changes: 44 additions & 0 deletions Creational_Pattern/Builder/StudentConcreteBuilder.java
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);
}
}
Binary file added Creational_Pattern/Builder/img.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
12 changes: 12 additions & 0 deletions Java-Design-Patterns.iml
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>

0 comments on commit f3fb07d

Please sign in to comment.