Effective Java - Item 4
βμΈμ€ν΄μ€νλ
λ©μλμ λ³μλ₯Ό λͺ¨μλμ κ²μ λΆκ³Όν ν΄λμ€λ₯Ό μ¬μ©ν μ μλλ‘ ν΄λΉ ν΄λμ€ νμ μ κ°μ²΄λͺ μ μ μΈνκ³ κ°μ λ£μ΄ ν΄λΉ ν΄λμ€μ λ³μλ λ©μλλ₯Ό μ¬μ© κ°λ₯ν μνλ‘ λ§λλ κ²
κΈ°λ³Έ νμ
κ°μ΄λ λ°°μ΄ κ΄λ ¨ λ©μλλ₯Ό λͺ¨μ λμ λ java.lang.Math
, java.util.Arrays
νΉμ μΈν°νμ΄μ€λ₯Ό ꡬννλ κ°μ²΄λ₯Ό μμ±ν΄μ£Όλ μ μ λ©μλ(νΉμ ν©ν 리)λ₯Ό λͺ¨μ λμ λ java.util.Collections
final ν΄λμ€λ₯Ό μμν΄μ νμ ν΄λμ€μ λ©μλλ₯Ό λ£λ κ²μ λΆκ°λ₯ νκΈ° λλ¬Έμ final ν΄λμ€μ κ΄λ ¨ν λ©μλλ₯Ό λͺ¨μ λμ λ
μμ μΈκ°μ§ κ²½μ°μ μ μ νλμ μ μ λ©μλλ§μ κ°μ§ ν΄λμ€λ₯Ό μμ±ν νμκ° μλ€.
μμ±μλ₯Ό λͺ μνμ§ μμΌλ©΄ μ»΄νμΌλ¬κ° μλμΌλ‘ κΈ°λ³Έ μμ±μλ₯Ό λ§λ€μ΄μ£ΌκΈ° λλ¬Έμ μμΉμλ public μμ±μκ° λ§λ€μ΄μ§κ³ μ¬μ©μλ μμ±μκ° μ¬μ©νκΈ° μν΄ λ§λ μμ±μμΈμ§ μλμ§λ₯Ό ꡬλΆν μκ° μλ€.
κ·Έλ λ€κ³ μΆμ ν΄λμ€λ‘ λ§λλ κ²μΌλ‘λ μΈμ€ν΄μ€νλ₯Ό λ§μ μ μλ€. νμ ν΄λμ€λ₯Ό λ§λ€μ΄ μ¬μ©μκ° μμνμ¬ μΈμ€ν΄μ€νλ₯Ό ν μ μκΈ° λλ¬Έμ΄λ€.
μ΄λ° κ²½μ°μ μμ±μμ private μμ±μλ₯Ό μΆκ°νλ€.
μ€μ§ λͺ μλ μμ±μκ° μμ κ²½μ°μλ§ μ»΄νμΌλ¬κ° κΈ°λ³Έ μμ±μλ₯Ό λ§λ€κΈ° λλ¬Έμ ν΄λμ€ λ°κΉ₯μμλ μ κ·Όν μ μλ private μμ±μλ₯Ό μΆκ°νλ€λ©΄ μΈμ€ν΄μ€νλ₯Ό λ§μ μ μλ€.
- μ½λ
1
2
3
4
5
6
7
public class UtilityClass {
private UtilityClass() {
throw new AssertionError();
}
...
}
β 무쑰건 Errorλ₯Ό λμ Έμ€μΌν νμλ μμΌλ κ°μ ν΄λμ€λ΄μμ μ€μλ‘λΌλ μμ±μλ₯Ό νΈμΆν μ μλλ‘ ν΄μ€λ€.
μ΄λ° λ°©μμ μ¬μ©νλ€λ©΄ μμ μμ λΆκ°λ₯νλ€.
λͺ¨λ μμ±μλ μμ ν΄λμ€μ μμ±μλ₯Ό νΈμΆνκ² λμ΄μλλ° μ κ·Ό κΆνμ privateλ‘ μ μΈνλ€λ©΄ νμ ν΄λμ€μμ μμ ν΄λμ€μ μμ±μμ μ κ·Όν λ°©λ²μ΄ μκΈ° λλ¬Έμ΄λ€.