Skip to content

Commit 6838fca

Browse files
committed
refact : 주생성자를 사용하여 부생성자 지정으로 코드중복 제거
1 parent 088f5dd commit 6838fca

File tree

5 files changed

+34
-72
lines changed

5 files changed

+34
-72
lines changed

Diff for: src/main/java/nextstep/courses/BaseTime.java

+3-4
Original file line numberDiff line numberDiff line change
@@ -7,15 +7,14 @@ public class BaseTime {
77
private final LocalDateTime createdAt;
88
private final LocalDateTime updatedAt;
99

10-
public BaseTime() {
11-
this.createdAt = LocalDateTime.now();
12-
this.updatedAt = null;
13-
}
1410
public BaseTime(LocalDateTime createdAt, LocalDateTime updatedAt) {
1511
this.createdAt = createdAt;
1612
this.updatedAt = updatedAt;
1713
}
1814

15+
public BaseTime() {
16+
this(LocalDateTime.now(), null);
17+
}
1918

2019
public LocalDateTime getCreatedAt() {
2120
return createdAt;

Diff for: src/main/java/nextstep/courses/domain/coverimage/CoverImage.java

+4-9
Original file line numberDiff line numberDiff line change
@@ -11,15 +11,6 @@ public class CoverImage extends BaseTime {
1111
private final ImageFileSize imageFileSize;
1212
private final ImageSize imageSize;
1313

14-
private CoverImage(String name, CoverImageType coverImageType, ImageFileSize size, ImageSize imageSize) {
15-
super();
16-
this.id = 0L;
17-
this.name = name;
18-
this.coverImageType = coverImageType;
19-
this.imageFileSize = size;
20-
this.imageSize = imageSize;
21-
}
22-
2314
private CoverImage(Long id, String name, CoverImageType coverImageType, ImageFileSize size, ImageSize imageSize, LocalDateTime createdAt, LocalDateTime updatedAt) {
2415
super(createdAt, updatedAt);
2516
this.id = id;
@@ -28,6 +19,10 @@ private CoverImage(Long id, String name, CoverImageType coverImageType, ImageFil
2819
this.imageFileSize = size;
2920
this.imageSize = imageSize;
3021
}
22+
private CoverImage(String name, CoverImageType coverImageType, ImageFileSize size, ImageSize imageSize) {
23+
this(0L, name, coverImageType, size,imageSize, LocalDateTime.now(), null);
24+
}
25+
3126

3227
public static CoverImage defaultOf(String fileName, long size, long width, long height) {
3328
String name = fileName(fileName);

Diff for: src/main/java/nextstep/courses/domain/lectures/FreeLecture.java

+13-32
Original file line numberDiff line numberDiff line change
@@ -18,50 +18,31 @@ public class FreeLecture extends BaseTime implements Lecture {
1818
private final RegistrationPeriod registrationPeriod;
1919
private final Students students = Students.defaultOf(); // 강의 기본정보와는 다름
2020

21+
// primary constructor
2122
public FreeLecture(Long id, String title, CoverImages coverImages,
22-
LectureRecruitingStatus lectureRecruitingStatus,
23-
RegistrationPeriod registrationPeriod) {
24-
super();
23+
LectureRecruitingStatus lectureRecruitingStatus, LectureStatus lectureStatus,
24+
RegistrationPeriod registrationPeriod, LocalDateTime createdAt, LocalDateTime updatedAt) {
25+
super(createdAt, updatedAt);
2526
this.id = id;
2627
this.title = title;
2728
this.coverImages.addAll(coverImages);
28-
this.lectureStatus = LectureStatus.YET;
29+
this.lectureStatus = lectureStatus;
2930
this.lectureRecruitingStatus = lectureRecruitingStatus;
3031
this.registrationPeriod = registrationPeriod;
3132
}
3233

33-
public FreeLecture(Long id, String title, CoverImages coverImages, LectureStatus lectureStatus,
34+
public FreeLecture(Long id, String title, CoverImages coverImages,
3435
LectureRecruitingStatus lectureRecruitingStatus,
3536
RegistrationPeriod registrationPeriod) {
36-
super();
37-
this.id = id;
38-
this.title = title;
39-
this.coverImages.addAll(coverImages);
40-
this.lectureStatus = lectureStatus;
41-
this.lectureRecruitingStatus = lectureRecruitingStatus;
42-
this.registrationPeriod = registrationPeriod;
37+
this(id, title, coverImages, lectureRecruitingStatus, LectureStatus.YET, registrationPeriod,
38+
LocalDateTime.now(), null);
4339
}
4440

45-
public FreeLecture(Long id, String title, CoverImage coverImage, LectureStatus lectureStatus,
41+
public FreeLecture(Long id, String title, CoverImages coverImages, LectureStatus lectureStatus,
4642
LectureRecruitingStatus lectureRecruitingStatus,
47-
RegistrationPeriod registrationPeriod, LocalDateTime createdAt, LocalDateTime updatedAt) {
48-
super(createdAt, updatedAt);
49-
this.id = id;
50-
this.title = title;
51-
this.coverImages.add(coverImage);
52-
this.lectureStatus = lectureStatus;
53-
this.lectureRecruitingStatus = lectureRecruitingStatus;
54-
this.registrationPeriod = registrationPeriod;
55-
}
56-
57-
public FreeLecture(LectureEntity lecture) {
58-
super(lecture.getCreatedAt(), lecture.getUpdatedAt());
59-
this.id = lecture.id();
60-
this.title = lecture.title();
61-
this.coverImages.addAll(lecture.coverImage());
62-
this.lectureStatus = lecture.lectureStatus();
63-
this.lectureRecruitingStatus = lecture.lectureRecruitingStatus();
64-
this.registrationPeriod = lecture.registrationPeriod();
43+
RegistrationPeriod registrationPeriod) {
44+
this(id, title, coverImages, lectureRecruitingStatus, lectureStatus, registrationPeriod,
45+
LocalDateTime.now(), null);
6546
}
6647

6748
@Override
@@ -87,7 +68,7 @@ public void canEnrollment(NsUser nsUser, Students selectedStudents) {
8768

8869
@Override
8970
public void enrollment(NsUser nsUser, Students selectedStudents) {
90-
this.canEnrollment(nsUser,selectedStudents);
71+
this.canEnrollment(nsUser, selectedStudents);
9172
this.students.add(nsUser);
9273
}
9374

Diff for: src/main/java/nextstep/courses/domain/lectures/PaidLecture.java

+13-26
Original file line numberDiff line numberDiff line change
@@ -23,14 +23,15 @@ public class PaidLecture extends BaseTime implements Lecture {
2323
; // 강의 기본정보와는 다름
2424

2525

26-
public PaidLecture(Long id, String title, CoverImage coverImage,
27-
LectureRecruitingStatus lectureRecruitingStatus,
28-
RegistrationPeriod registrationPeriod, Price price, Integer limitStudentCount) {
29-
super();
26+
public PaidLecture(Long id, String title, CoverImages coverImages,
27+
LectureRecruitingStatus lectureRecruitingStatus, LectureStatus lectureStatus,
28+
RegistrationPeriod registrationPeriod, Price price, Integer limitStudentCount,
29+
LocalDateTime createdAt, LocalDateTime updatedAt) {
30+
super(createdAt, updatedAt);
3031
this.id = id;
3132
this.title = title;
32-
this.coverImages.add(coverImage);
33-
this.lectureStatus = LectureStatus.YET;
33+
this.coverImages.addAll(coverImages);
34+
this.lectureStatus = lectureStatus;
3435
this.lectureRecruitingStatus = lectureRecruitingStatus;
3536
this.registrationPeriod = registrationPeriod;
3637
this.price = price;
@@ -40,31 +41,17 @@ public PaidLecture(Long id, String title, CoverImage coverImage,
4041
public PaidLecture(Long id, String title, CoverImages coverImages,
4142
LectureRecruitingStatus lectureRecruitingStatus,
4243
RegistrationPeriod registrationPeriod, Price price, Integer limitStudentCount) {
43-
super();
44-
this.id = id;
45-
this.title = title;
46-
this.coverImages.addAll(coverImages);
47-
this.lectureStatus = LectureStatus.YET;
48-
this.lectureRecruitingStatus = lectureRecruitingStatus;
49-
this.registrationPeriod = registrationPeriod;
50-
this.price = price;
51-
this.limitStudentCount = limitStudentCount;
44+
this(id, title, coverImages, LectureStatus.YET, lectureRecruitingStatus, registrationPeriod,
45+
price, limitStudentCount, LocalDateTime.now(), null);
5246
}
5347

54-
public PaidLecture(Long id, String title, CoverImages coverImage, LectureStatus lectureStatus,
48+
public PaidLecture(Long id, String title, CoverImages coverImages, LectureStatus lectureStatus,
5549
LectureRecruitingStatus lectureRecruitingStatus,
5650
RegistrationPeriod registrationPeriod, Price price, Integer limitStudentCount
5751
, LocalDateTime createdAt
5852
, LocalDateTime updatedAt) {
59-
super(createdAt, updatedAt);
60-
this.id = id;
61-
this.title = title;
62-
this.coverImages.addAll(coverImage);
63-
this.lectureStatus = lectureStatus;
64-
this.lectureRecruitingStatus = lectureRecruitingStatus;
65-
this.registrationPeriod = registrationPeriod;
66-
this.price = price;
67-
this.limitStudentCount = limitStudentCount;
53+
this(id, title, coverImages, lectureRecruitingStatus, LectureStatus.YET, registrationPeriod,
54+
price, limitStudentCount, createdAt, updatedAt);
6855
}
6956

7057
public PaidLecture(LectureEntity lecture) {
@@ -106,7 +93,7 @@ public void canEnrollment(NsUser nsUser, Students selectedStudents) {
10693

10794
@Override
10895
public void enrollment(NsUser nsUser, Students selectedStudents) {
109-
this.canEnrollment(nsUser,selectedStudents);
96+
this.canEnrollment(nsUser, selectedStudents);
11097
nsUser.hasPayment(price);
11198
this.students.addWithLimitCount(nsUser, limitStudentCount);
11299
}

Diff for: src/test/java/nextstep/courses/infrastructure/LectureRepositoryTest.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -54,7 +54,7 @@ void crud() {
5454
PaidLecture lecture = new PaidLecture(
5555
1L
5656
, "test"
57-
, coverImage
57+
, coverImages
5858
, LectureRecruitingStatus.PREPARING
5959
, new RegistrationPeriod(LocalDateTime.now(), LocalDateTime.now().plusMonths(1))
6060
, new Price(BigDecimal.TEN)

0 commit comments

Comments
 (0)