불변 클래스

    변경 가능성을 최소화하라(불변 클래스를 만들 때 고려할 것)(3) - [4장. 클래스와 인터페이스(아이템17)]

    이전 글 변경 가능성을 최소화하라(불변 클래스를 만드는 다섯 가지 규칙)(1) - [4장. 클래스와 인터페이스(아이템17)] 변경 가능성을 최소화하라(불변 클래스의 장점, 단점, 단점 대처 방법)(2) - [4장. 클래스와 인터페이스(아이템17)] 이번 글에서는 '불변 클래스를 만들 때 고려할 것'에 대해서 알아보자. 1. 상속을 막을 수 있는 또 다른 방법 🦓 이전 글을 통해 불변 클래스를 보장하려면 자신을 상속하지 못하게 해야 한다는 것을 알 수 있었다. 자신을 상속하지 못하게 하는 가장 쉬운 방법으로 final 클래스에 대해서 알아보았다. 하지만 더 유연한 방법이 있다. 모든 생성자를 private 혹은 package-private으로 만들고 public 정적 팩터리를 제공하는 방법이다. // 1...

    변경 가능성을 최소화하라(불변 클래스의 장점, 단점, 단점 대처 방법)(2) - [4장. 클래스와 인터페이스(아이템17)]

    이전 글 변경 가능성을 최소화하라(불변 클래스를 만드는 다섯 가지 규칙)(1) - [4장. 클래스와 인터페이스(아이템17)] 이번 글에서는 불변 클래스의 장점, 단점, 그리고 단점 대처 방법에 대해서 알아보자. 1. 장점 🚑 📘 장점 1. 함수형 프로그래밍에 적합하다. public final class Complex { private final double re; private final double im; public Complex(double re, double im) { this.re = re; this.im = im; } public double realPart() { return re;} public double imaginaryPart() {return im;} public Complex pl..

    변경 가능성을 최소화하라(불변 클래스를 만드는 다섯 가지 규칙)(1) - [4장. 클래스와 인터페이스(아이템17)]

    불변 클래스란 인스턴스의 내부 값을 수정할 수 없는 클래스를 말한다. 불변 인스턴스에 간직된 정보는 고정되어 객체가 파괴는 순간까지 절대 달라지지 않는다. 불변 클래스는 가변 클래스보다 설계하고 구현하고 사용하기 쉬우며, 오류가 생길 여지도 적고 훨씬 안전하다는 이점이 있다. 아이템 17에서는 아래 3가지 내용을 다루고 있다. 불변 클래스를 만드는 다섯 가지 규칙 불변 클래스의 장점, 단점, 단점 대처 방법 불변 클래스를 만들 때 고려할 것 이번 글에서는 '1. 불변 클래스를 만드는 다섯 가지 규칙'에 대해서 알아보자. 1. 객체의 상태를 변경하는 메서드를 제공하지 않는다. 🚕 public class PhoneNumber { private short areaCode, prefix, lineNum; pub..