Java 3

[JAVA] 디자인 패턴 - Visitor 패턴

Visitor 패턴 Visitor 패턴 소개 Visitor 패턴은 객체의 구조와 기능을 분리하여 새로운 동작을 기존 객체 구조에 추가할 수 있게 하는 디자인 패턴입니다. 이 패턴은 객체지향 프로그래밍의 SOLID 원칙 중 하나인 "개방-폐쇄 원칙(Open-Closed Principle, OCP)"을 따르며, 기존 코드의 수정 없이 새로운 동작을 추가할 수 있도록 돕습니다. 주로 데이터 구조와 해당 데이터를 처리하는 로직(알고리즘)을 분리해야 할 때 유용하며, 데이터 구조보다 알고리즘이 더 자주 변경될 때 특히 유용합니다. 특징 객체의 구조와 기능을 분리하여 새로운 동작을 추가하기 쉽게 합니다. "개방-폐쇄 원칙(OCP)"을 준수하여 코드 수정을 최소화합니다. 데이터 구조와 알고리즘이 분리되어 데이터의 독..

Java 2024.01.18

[JAVA] 디자인패턴 - Proxy 패턴

Proxy 패턴 Proxy 패턴 소개 어떤 객체를 사용할 때 객체를 직접적으로 참조하는 것이 아닌 해당 객체를 대리하는 객체인 프록시를 통해서 대상 객체에 접근하는 방식입니다. 대상 객체가 메모리에 존재하지 않더라도 기본 정보를 참조하거나 설정할 수 있으며, 필요한 시점에만 객체를 생성합니다. Proxy 패턴 사용 이유 프록시 객체를 통해 클라이언트의 모든 요청을 조절하면 서비스를 유연하게 제공할 수 있습니다. 장점 메모리 사용량이 큰 객체를 로딩하기 전에 프록시를 통해 참조할 수 있습니다. 원격 객체를 로컬에서 사용할 수 있습니다. 원본 객체에 접근하기 전에 사전 처리 작업을 수행할 수 있습니다. 단점 객체 생성에 추가 단계가 필요하므로 빈번한 객체 생성이 성능에 영향을 줄 수 있습니다. 코드 가독성이..

Java 2024.01.18

[JAVA] 디자인패턴 - State 패턴

State 패턴 State 패턴 소개 State 패턴은 객체의 상태를 관리하고 해당 상태에 따라 객체의 행동을 변경하는 디자인 패턴입니다. 이 패턴을 사용하면 객체의 상태 전이를 캡슐화하고, 유지보수와 확장이 쉬운 구조를 만들 수 있습니다. 사용 이유 객체가 여러 상태에 따라 다른 행동을 해야 할 때 State 패턴을 사용하면 코드 유지보수가 용이하며 가독성이 높아집니다. 장점 코드의 가독성과 유지보수성이 향상됩니다. 객체의 상태 전이를 명확하게 관리할 수 있습니다. 단점 상태 클래스가 많아질수록 클래스의 수가 늘어날 수 있습니다. 스토리 : 은행 계좌 상태 관리 이 예제는 은행 계좌의 상태를 관리하는 패턴을 구현한 것입니다. 계좌는 두 가지 상태를 가집니다. 열린 상태 (Open State): 입금과 ..

Java 2024.01.18