IT/Java13 [Java] Java Command Pattern Command Pattern커맨드 패턴(Command Pattern)은 객체의 행위(메서드)를 클래스로 만들어 캡슐화하는 패턴이다.어떤 객체(A)에서 다른 객체(B)의 메서드를 실행하려면, 객체(B)를 참조하고 있어야 하는 의존성이 발생한다. 이와 같은 상황에서 커맨드 패턴을 적용하면 의존성을 제거할 수 있다. 또한 기능이 수정되거나 변경이 일어날 때 A 클래스의 코드를 수정 없이기능에 대한 클래스를 정의하면 되므로 시스템이 확장성이 있으면서 유연성을 가질 수 있다.즉 커맨드 패턴은 연산을 호출하는 객체와 수행하는 객체를 분리하는 패턴이다. 이 패턴에서 핵심은 통상적으로 execute()라는추상 메서드를 가진, Command 인터페이스를 통해 기능을 확장해 나간다. Command 객체의 서브클래스들은 실.. 2024. 9. 13. [Java] Java Builder Pattern Builder Pattern빌더 패턴(Builder Pattern)은 복잡한 객체를 생성하는 방법을 정의하는 클래스와 표현하는 방법을 정의하는 클래스를 별도로 분리하여, 서로 다른 표현이라도 이를 생성할 수 있는 동일한 절차를 제공하는 패턴이다.즉 생성 패턴으로 인스턴스를 만드는 절차를 추상화한다.특히 빌더 패턴은 많은 Optional 한 멤버 변수(혹은 파라미터)나 지속성 없는 상태 값들에 대해 처리해야 할 때 큰 장점을 가지고 있다. 자바에서는 점층적 생성자 패턴을 제공하는데,이는 필수 매개변수와 함께 선택 매개변수를 0개, 1개, 2개 .. 받는 형태로, 우리가 다양한 매개변수를 입력받아 인스턴스를 생성하고 싶을 때사용하던 생성자를 오버로딩 하는 방식이다. 만약 클래스가 인스턴스 필드들이 너무 많아.. 2024. 9. 12. [Java] Java Factory Pattern Factory Pattern팩토리 패턴(Factory Pattern)은 객체 생성을 공장(Factory) 클래스로 캡슐화 처리하여,객체를 대신 생성하게 하는 생성 디자인 패턴이다. 즉, 클라이언트에서 직접 new 연산자를 통해 제품 객체를 생성하는 것이 아닌, 제품 객체들을 도맡아 생성하는 공장 추상 클래스를 만들고, 이를 상속하는 서브 공장 클래스의 메서드에서 여러 가지 제품 객체 생성을 각각 책임지는 것이다. 또한 객체 생성에 필요한 과정을 템플릿처럼 미리 구성해 놓고, 객체 생성에 관한 전처리나 후처리를 통해 생성 과정을 다양하게 처리하여 객체를 유연하게 정할 수 있는 특징도 있다. 즉 팩토리 패턴은 생성 패턴(Creational Pattern) 중 하나이다.생성 패턴은 인스턴스를 만드는 절차를 추.. 2024. 9. 11. [Java] Java Decorator Pattern Decorator Pattern데코레이터 패턴(Decorator Pattern)은 대상 객체에 대한 기능 확장이나 변경이 필요할 때 객체의 결합을 통해 쓸 수 있는 유연한 대안 구조 패턴이다. Decorator을 해석하자면 '장식자'라는 의미를 가지고 있는데, 마치 기본 제품에 포장지나 외부 디자인을 살짝 변경해 줌으로써 새로운 기능을 부여하는 것과 같이, 객체 지향 프로그래밍에서 원본 객체에 대해서 무언가를 장식하여 더 추가적인 기능을 가지게 만드는 것이기 때문에 이 명칭이 붙었다고 보면 된다. 데코레이터 패턴을 이용하면 필요한 추가 기능의 조합을 런타임에서 동적으로 생성할 수 있다. 데코레이터 할 대상 객체를 새로운 행동들을 포함한 특수 장식자 객체에 넣어서 행동들을 해당 장식자 객체마다 연결시켜,.. 2024. 9. 9. [Java] Java Observer Pattern Observer Pattern옵저버 패턴(Observer Pattern)은 옵저버(관찰자)들이 관찰하고 있는 대상자의 상태가 변화가 있을 때마다 대상자는 직접 목록의 각 관찰자들에게 통지하고, 관찰자들은 알림을 받아 조치를 취하는 행동 패턴이다. 옵저버 패턴은 다른 디자인 패턴들과 다르게 일대다(one-to-many) 의존성을 가지는데, 주로 분산 이벤트 핸들링 시스템을 구현하는 데 사용된다. 발행 / 구독 모델로도 알려져 있기도 하다. 이 패턴을 이해하는 데 있어 뉴스 피드나 유튜브로 비유해 보면 쉽다. 유튜브 채널은 발행자(Subject)가 되고 구독자들은 관찰자(Observer)가 되는 구조로 보면 된다. 실제로 유튜버가 영상을 올리면 여러 명의 구독자들은 모두 영상이 올라왔다는 알림을 받는데, 이.. 2024. 9. 8. [Java] Java Strategy Pattern Strategy PatternStrategy 전략 패턴은 실행(런타임) 중에 알고리즘 전략을 선택하여 객체 동작을 실시간으로 바뀌도록 할 수 있게 하는 행위 디자인 패턴이다.여기서 '전략'이란 일종의 알고리즘이 될 수 도 있으며,기능이나 동작이 될 수도 있는 특정한 목표를 수행하기 위한 행동 계획을 말한다.즉, 어떤 일을 수행하는 알고리즘이 여러 가지 일 때,동작들을 미리 전략으로 정의함으로써 손쉽게 전략을 교체할 수 있는, 알고리즘 변형이 빈번하게 필요한 경우에 적합한 패턴이다.이 패턴을 정책이라고도 하며, Strategy Pattern은 Open/Closed 원리를 기반으로 한다.메인 Context를 수정할 필요 없이 (Closed) 모든 구현을 선택 혹은 추가 (Open) 할 수 있다. Strate.. 2024. 8. 29. 이전 1 2 3 다음