item 4 Jung inchul - JAVA-JIKIMI/EFFECTIVE-JAVA3 GitHub Wiki
Effective Java 3e μμ΄ν 4λ₯Ό μμ½ν λ΄μ© μ λλ€.
μ΄λ°κΈ λ¨μν μ μ λ©μλμ μ μ νλλ§μ λ΄μ ν΄λμ€λ₯Ό λ§λ€κ³ μΆμ λκ° μμ κ²μ΄λ€. κ°μ²΄ μ§ν₯μ μΌλ‘ μ¬κ³ νμ§ μλ μ΄λ€μ΄ μ’ μ’ λ¨μ©νλ λ°©μμ΄κΈ°μ 그리 κ³±κ² λ³΄μ΄μ§λ μμ§λ§ λΆλͺ λλ¦μ μ°μμκ° μλ€. μ컨λ java.lang.Mathμ java.util.Arraysμ²λΌ κΈ°λ³Έ νμ κ°μ΄λ λ°°μ΄ κ΄λ ¨ λ©μλλ€μ λͺ¨μλμ μ μλ€. λν java.util.Collectionsμ²λΌ νΉμ μΈν°νμ΄μ€λ₯Ό ꡬννλ κ°μ²΄λ₯Ό μμ±ν΄μ£Όλ μ μ λ©μλ(νΉμ ν©ν°λ¦¬)λ₯Ό λͺ¨μλμ μλ μλ€.
μ μ λ©€λ²λ§ λ΄μ μ νΈλ¦¬ν° ν΄λμ€λ μΈμ€ν΄μ€λ‘ λ§λ€μ΄ μ°λ €κ³ μ€κ³νκ² μλλ€. κ·Έλ¬λ μμ±μλ₯Ό λͺ μνμ§ μμΌλ©΄ μ»΄νμΌλ¬κ° μλμΌλ‘ κΈ°λ³Έ μμ±μλ₯Ό λ§λ€μ΄μ€λ€. μ€μ λ‘ κ³΅κ°λ APIλ€μμλ μ΄μ²λΌ μλμΉ μκ² μΈμ€ν΄μ€νν μ μκ² λ ν΄λμ€κ° μ’ μ’ λͺ©κ²©λκ³€ νλ€.
Q1. μ΄λ€ ν΄λμ€λ€μ΄ μμκΉ?
μΆμ ν΄λμ€λ‘ λ§λλ κ²μΌλ‘λ μΈμ€ν΄μ€νλ₯Ό λ§μ μ μλ€.
컬νμΌλ¬κ° κΈ°λ³Έ μμ±μλ₯Ό λ§λλ κ²½μ°λ μ€μ§ λͺ μλ μμ±μκ° μμ λλΏμ΄λ private μμ±μλ₯Ό μΆκ°νλ©΄ ν΄λμ€μ μΈμ€ν΄μ€νλ₯Ό λ§μ μ μλ€.
public class UtilityClass {
// κΈ°λ³Έ μμ±μκ° λ§λ€μ΄μ§λ κ²μ λ§λλ€(μΈμ€ν΄μ€ν λ°©μ§μ©)
private UtilityClass() {
throw new AssertionError();
}
...
}
λͺ μμ μμ±μκ° privateμ΄λ ν΄λμ€ λ°κΉ₯μμλ μ κ·Όν μ μλ€.
μ΄ λ°©μμ μμμ λΆκ°λ₯νκ² νλ ν¨κ³Όλ μλ€. λͺ¨λ μμ±μλ λͺ μμ μ΄λ 묡μμ μ΄λ μμ ν΄λμ€μ μμ±μλ₯Ό νΈμΆνκ² λλλ°, μ΄λ₯Ό privateμΌλ‘ μ μΈνμΌλ νμ ν΄λμ€κ° μμ ν΄λμ€μ μμ±μμ μ κ·Όν κΈΈμ΄ λ§νλ²λ¦°λ€.