코드 작업을 하던 중 명확하게 의미를 파악하고 사용하고 있지 않았던 부분에 궁금증이 들었습니다!
Java에서 메서드 명명 규칙으로 of와 from 메서드의 확실한 용도가 무엇일까요? 🧐
of
- 용도: 주로 입력 파라미터의 유효성을 검증하여 새로운 객체를 생성하는 정적 팩토리 메서드입니다.
- 특징: 입력된 값을 기반으로 새로운 객체를 생성하며, 주로 변환 작업 없이 객체를 만듭니다.
public class Money {
private final int amount;
private final String currency;
private Money(int amount, String currency) {
this.amount = amount;
this.currency = currency;
}
public static Money of(int amount, String currency) {
// 입력 파라미터의 유효성 검증
if (amount < 0) {
throw new IllegalArgumentException("Amount must be positive");
}
return new Money(amount, currency);
}
}
이 처럼 금액(Money)과 통화(currency)를 입력받아 새로운 Money 객체를 생성하게 됩니다.
입력값의 유효성을 검증한 후 객체를 생성하는 것이 특징이라고 할 수 있습니다.
from
- 용도: 다른 타입의 객체를 입력받아 이를 변환하여 새로운 객체를 생성하는 정적 팩토리 메서드입니다.
- 특징: 입력된 객체를 변환하여 새로운 객체를 생성하며, 변환 과정에서 일부 정보가 손실될 수 있습니다.
public class Employee {
private final String name;
private final int id;
public Employee(String name, int id) {
this.name = name;
this.id = id;
}
public static Employee from(Person person) {
// Person 객체를 Employee 객체로 변환
return new Employee(person.getName(), person.getId());
}
}
public class Person {
private final String name;
private final int id;
public Person(String name, int id) {
this.name = name;
this.id = id;
}
public String getName() {
return name;
}
public int getId() {
return id;
}
}
이처럼 from은 Person이라는 객체를 입력받아 Employee 객체로 변환합니다.
Person객체의 정보를 Employee 객체로 변환하여 새로운 객체를 생성합니다.
of 메서드
주어진 파라미터의 유효성을 검사하여 새로운 객체를 생성합니다. 변환 작업 없이 입력된 값을 사용하여 객체를 만듭니다. 주로 동일한 타입의 값을 입력받아 객체를 생성할 때 사용합니다.
from 메서드
다른 타입의 객체를 입력받아 이를 변환하여 새로운 객체를 생성합니다. 변환 과정에서 일부 정보가 손실될 수 있습니다. 주로 다른 타입의 객체를 변환하여 새로운 객체를 생성할 때 사용합니다.
이러한 명명 규칙에 따르면 코드의 목적과 기능을 명확하게 전달할 수 있어, 가독성과 유지 보수성이 향상됩니다.
'Backend > Java' 카테고리의 다른 글
| [Java] computeIfAbsent 효율적인 데이터 캐싱과 값 처리 (0) | 2024.07.27 |
|---|---|
| [Java] abstract class 와 interface class의 차이 (0) | 2024.07.17 |
| [Java] Equals와 == 의 차이 (0) | 2024.05.25 |
| [Java] Record란? (0) | 2024.04.13 |
| [Java] Primitive Type, Reference Type의 개념과 차이점 (0) | 2024.01.13 |