본문 바로가기

개발/Effective Java3

[Effective Java] 생성자에 매개변수가 많다면 빌더를 고려하라 실제로, 프로젝트를 진행하면서 클래스의 매개변수가 많은 경우 빌더를 즐겨 사용했다. 그리고 책에서 나온것 같이 setter를 사용하여 불변식을 지키지 못하는 상황을 방지할 수 있는 점, 그리고 생성자에 값을 잘못 넣을 가능성을 없앨 수 있다는 점에서 정말 좋다고 생각한다. 하지만 그 전에 생각해야 할 부분이 있다. 애초에 필드가 왜 많아야 하는가? SRP를 제대로 준수했다면 필드가 많을 필요가 없다. 만일 파사드 패턴과 같은 상황으로 인해 필드가 많아지는 경우는 어떡하는가? 생각해보면 이런 경우는 필드가 또 다른 객체로 이루어져 있다. 객체 필드의 의미와 타입의 중복이 없고 이는 생성자를 통해 객체를 생성하더라도 잘못된 데이터를 넣을 가능성 낮출 수 있으며 정합성 또한 보장 가능해진다. 내가 빌더를 주로.. 2022. 1. 3.
[Effective Java] 생성자 대신 정적 팩터리 메서드를 고려하라. 장점 이름을 가질 수 있다. 좋은 장점이라고 생각한다. 생성자의 매개변수만으로는 생성되는 객체의 의미를 파악하기 힘든 경우가 분명 있다. 하지만 이름을 가지면 좋다는 이유로 가끔 무분별하게 기본적인 생성자 호출로도 가능한 로직을 정적 팩터리 메서드를 사용하는 경우가 있다. 예를들면 아래와 같은 경우다. public class Main { public static void main(String[] args) { Calculator calc = Calculator.createNewCalculator(); ... } } public class Calculator { ... public static Calculator createNewCalculator() { return new Calculator(); } ... 2021. 12. 16.
[Effective Java] 시작. 이전에도 한번 읽었던 책이지만, 이때보다 조금이라도 더 성장한 지금. 내가 느끼는 이팩티브 자바에 대한 개인적인 감상에 대해서 적고자 한다. 단순히 책의 내용을 정리하는게 아닌, 내용에 대한 나의 생각, 공감, 반론을 적는것을 목표로 하고싶다. 2021. 12. 16.