퍼사드 패턴? 퍼사드(Facade) : 건물의 출입구가 있는 정면 복잡한 시스템이나 서브시스템을 단순화된 인터페이스를 통해 외부로 노출시키는 패턴입니다. 이를 통해 클라이언트가 시스템의 복잡성을 몰라도 간단한 인터페이스를 통해 시스템을 사용할 수 있도록 합니다. 실생활에서 볼 수 있는 퍼사드 패턴의 예시 일상적인 예제로는 스마트폰의 전원 버튼을 들 수 있습니다. 스마트폰의 내부에는 수많은 하드웨어 및 소프트웨어 컴포넌트가 복잡하게 동작합니다. 그러나 사용자에게는 전원 버튼 하나만 노출되어 있고, 이 버튼을 누르면 전체 시스템이 켜지거나 꺼집니다. 개발 과정에서 만나게 되는 퍼사드 패턴이 필요한 상황 복잡한 시스템 또는 라이브러리를 간편하게 사용하려고 할 때. 다른 시스템과의 상호작용을 캡슐화하려고 할 때..
어댑터 패턴? 기존의 클래스나 인터페이스를 다른 인터페이스로 변환하는 데 사용되는 구조적인 패턴입니다. 다음과 같은 상황에서 유용합니다. 두 개의 인터페이스가 호환되지 않을 때 기존 클래스를 변경하지 않고 새로운 클래스나 인터페이스와 통합할 때 어댑터 패턴은 다음과 같은 주요 구성 요소로 구성됩니다 Target(대상) 인터페이스: 클라이언트가 사용하려는 인터페이스입니다. 클라이언트 코드는 이 인터페이스를 통해 객체에 접근합니다. Adaptee(적응 대상) 클래스 또는 인터페이스: 기존에 사용하려는 클래스 또는 인터페이스로, 클라이언트가 직접 사용하기 어려운 경우가 있습니다. Adapter(어댑터) 클래스: Target 인터페이스를 구현하고, Adaptee를 감싸서 Target 인터페이스를 따르도록 변환합..
디자인 패턴이란? 소프트웨어 디자인에서 자주 발생하는 문제에 대한 해결책을 재사용 가능한 형태로 정리한 것입니다. 이러한 패턴들은 소프트웨어 개발 과정에서 특정한 디자인 문제를 해결하기 위한 일반적인 접근 방식을 제공하며, 코드의 재사용성, 가독성, 확장성을 향상시키는 데 도움을 줍니다. 예를 들어, Singleton 패턴은 하나의 인스턴스만 생성하고 이를 여러 곳에서 공유하고자 할 때 사용됩니다. 다음은 Java에서의 Singleton 패턴의 간단한 예제입니다. public class Singleton { private static Singleton instance; private Singleton() { // 생성자를 private로 선언하여 외부에서 인스턴스 생성을 제한 } public static..
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의 적극적인 지원을 받을 수 있습니다. 허용 가능한 값들을 제한할 수 있습니다. 리팩토링시 변경 범위가 ..
https://giken.tistory.com/entry/Java-SOLID [Java] SOLID란? (1) - 객체 지향 프로그래밍의 5가지 기본 원칙 SOLID란? 로버트 마틴이 2000년대 초반에 이름붙인 객체 지향 프로그래밍/설계의 5가지 기본 원칙의 앞글자를 딴 약어 SOLID 객체지향의 4대 원칙 - 캡슐화, 상속, 추상화, 다형성 다형성 - 똑같은 클 giken.tistory.com 인터페이스 분리 원칙 (Interface segregation principle, ISP) 클라이언트별로 세분화된 인터페이스를 만들어야한다. 인터페이스를 분리한다는 점에서 앞서 살펴보았던 단일책임원칙과 동일하다. 그러나 분리하는 관점 자체가 다르다. 인터페이스 분리 원칙이 깨진 상황 public interfac..