[Java] Enum과 Builder 패턴을 예제와 함께 알아보자.
·
Programming Language/Java
https://github.com/prgrms-be-devcourse/java-library-management/pull/34 [5기 - 박주한] 1~2주차 과제: 도서 관리 어플리케이션 제출합니다. by ParkJuhan94 · Pull Request #34 · prg안녕하세요 도찌, 무송 멘토님! 이번 과제를 하면서 많은걸 배운것 같아요. 출력과 예제를 통해서 어느정도 test 하면서 진행을 했는데, 계속된 버그에 테스트코드가 꼭 필요한 것 같긴 했습니다.github.com   Java Enum 활용기개발을 진행할때 Enum을 통해 얻는 기본적인 장점들은 아래와 같습니다.문자열과 비교해, IDE의 적극적인 지원을 받을 수 있습니다.허용 가능한 값들을 제한할 수 있습니다.리팩토링시 변경 범위가 최소화 ..
[Java] final 을 사용하는 모든 경우 - 예제와 함께 이해하기
·
Programming Language/Java
final 키워드는 코드의 안정성을 높이고 의도를 명확히 표현하는 데 도움을 주며, 상수, 불변 객체, 메서드 오버라이딩 방지 등 다양한 상황에서 유용하게 사용됩니다. 개요 final 이라는 키워드를 사용하는 대부분의 경우는 단순히 변수에 붙여서 상수로 지정하는 것입니다. final 을 사용했을 때 유용한 경우가 더 있기에 이번 포스팅에서 알아보고, 적극 사용해보려 합니다. 아래에서 final 키워드의 다양한 사용 사례를 예제와 함께 설명하겠습니다. final 변수 final 변수는 한 번 초기화되면 값을 변경할 수 없습니다. 이를 상수(constant)로 사용하거나 값이 변경되지 말아야 할 경우에 유용합니다. public class FinalVariableExample { public static vo..
[Java] 객체 지향 프로그래밍의 5가지 기본 원칙 SOLID 를 예제와 함께 알아 보자. (2)
·
Programming Language/Java
인터페이스 분리 원칙 (Interface segregation principle, ISP)클라이언트별로 세분화된 인터페이스를 만들어야한다. 인터페이스를 분리한다는 점에서 앞서 1편에서 살펴보았던 단일책임원칙과 동일하다.그러나 분리하는 관점 자체가 다르다.    인터페이스 분리 원칙이 깨진 상황public interface Repository { void createUser(); User findUserById(Long id); void createArticle(); Article findArticleById(Long id);}public class UserRepository implements Repository { @Override public void createUse..
[Java] 객체 지향 프로그래밍의 5가지 기본 원칙 SOLID 를 예제와 함께 알아 보자. (1)
·
Programming Language/Java
SOLID란?로버트 마틴이 2000년대 초반에 이름붙인 객체 지향 프로그래밍/설계의 5가지 기본 원칙의 앞글자를 딴 약어 SOLID 객체지향의 4대 원칙 - 캡슐화, 상속, 추상화, 다형성다형성 - 똑같은 클라이언트 코드로 안에 들어있는 존재에 따라 다른 동작이 수행되는 것      단일 책임 원칙 (Single responsibility principle, SRP)하나의 클래스는 하나의 책임만을 가져야 한다. 하나의 클래스가 여러개의 책임을 가진다면, 그 클래스의 코드가 변경되어야할 이유가 여러개가 생긴 것이다. 단일 책임 원칙을 지키는 코드는 각각의 클래스가 응집력이 높기 때문에, 코드의 재사용성이 높아지고, 캡슐화를 통해 한 클래스의 변경이 다른 클래스에 영향을 미치지 않도록 만든다.      개방..
[Java] 의존 관계에 대해 예제와 함께 알아보자.
·
Programming Language/Java
의존이란 무엇인가?A 는 B 에 의존적이다.A 는 B 의 변화에 민감하게 반응한다.B 는 A 의 변화에 민감하게 반응한다고 할 수 없다.물건의 가격은 공급에 의존적이다.물건의 가격은 공급에 민감하게 반응한다.공급은 물건의 가격의 변화에 민감하게 반응한다고 할 수 없다.   클래스끼리 의존 관계 맺기public class RealMessageSender { public void send() { // 실제로 메시지 보내기 }}public class FakeMessageSender { public void send() { // 메시지는 안보내고 메시지를 보냈다는 로그만 찍기 }}// Client 는 FakeMessageSender 에 의존public class Client { publ..