개발바닥곰발바닥
반응형
[이펙티브 자바] Item 10. equals는 일반 규약을 지켜 재정의하라
JAVA 2023. 1. 25. 21:40

equals는 일반 규약을 지켜 재정의하라 equals 메서드는 재정의하기 쉬워 보이지만 자칫하면 끔찍한 결과를 초래한다. 문제를 회피하는 가장 쉬운 길은 아예 재정의하지 않는 것이다. 그냥 두면 그 클래스의 인스턴스는 오직 자기 자신과만 같게 된다. 아래 중 하나에 해당한다면 재정의하지 않는 것이 최선이다. 재정의 하지 않는 것이 좋은 경우 각 인스턴스가 본질적으로 고유하다. 값을 표현하는게 아니라 동작하는 개체를 표현하는 클래스가 여기 해당한다. Thread가 좋은 예로, Object의 equals는 이러한 클래스에 맞게 구현되었다. 인스턴스의 논리적 동치성(logical equality)을 검사할 일이 없다. 예를 들어 java.util.regex.Pattern은 equals를 재정의해서 두 Pat..

[JAVA]정적 팩토리 메서드 (Static Factory Method)
JAVA 2022. 10. 29. 02:26

Item1. 생성자 대신 정적 팩토리 메서드를 고려하라 클래스는 클라이언트에 public 생성자 대신 (혹은 생성자와 함께) 정적 팩토리 메서드를 제공할 수 있다. 이 방식에는 장점과 단점이 모두 존재한다. 장점 1. 이름을 가질 수 있다. class BigInteger { //public 생성자 방식 public BigInteger(int bitLength, int certainty, Random rnd) { BigInteger prime; if (bitLength < 2) throw new ArithmeticException("bitLength < 2"); prime = (bitLength < SMALL_PRIME_THRESHOLD ? smallPrime(bitLength, certainty, rnd..

반응형