JAVA/Design Patterns: 52개의 글

행동패턴 목록 책임연쇄 패턴 (Chan of Responsibility Pattern) 커맨드 패턴 (Command Pattern) 해석자 패턴 (Interpreter Pattern) 반복자 패턴 (Iterator Pattern) 중재자 패턴 (Mediator Pattern) 메멘토 패턴 (Memento Pattern) 관찰자 패턴 (Observer Pattern) 상태 패턴 (State Pattern) 전략 패턴 (Strategy Pattern) 템플릿 패턴 (Template Pattern) 클래스의 수를 상관하지 않고 단위기능의 처리를 테스트 할 때 쓰면 좋을 것 같기도 하다. 각 기능마다 레고블록처럼 갈아끼울 수 있기 때문에 초기에 사용하면 유용한 기능인 것 같다. 장점 - 서브클래싱 대신 사용할 ..

행동패턴 목록 책임연쇄 패턴 (Chan of Responsibility Pattern) 커맨드 패턴 (Command Pattern) 해석자 패턴 (Interpreter Pattern) 반복자 패턴 (Iterator Pattern) 중재자 패턴 (Mediator Pattern) 메멘토 패턴 (Memento Pattern) 관찰자 패턴 (Observer Pattern) 상태 패턴 (State Pattern) 전략 패턴 (Strategy Pattern) 템플릿 패턴 (Template Pattern) 객체의 동작이 상태에 따라 변하는 경우에 사용한다. 옵저버패턴과의 차이를 생각해보고 적재적소에 사용해야 할 것 같다. 관찰자 패턴은 상태가 변경시에 그때그때 알려주는 패턴이고 상태패턴은 상태에 따라 처리를 다르게 ..

행동패턴 목록 책임연쇄 패턴 (Chan of Responsibility Pattern) 커맨드 패턴 (Command Pattern) 해석자 패턴 (Interpreter Pattern) 반복자 패턴 (Iterator Pattern) 중재자 패턴 (Mediator Pattern) 메멘토 패턴 (Memento Pattern) 관찰자 패턴 (Observer Pattern) 상태 패턴 (State Pattern) 전략 패턴 (Strategy Pattern) 템플릿 패턴 (Template Pattern) 어떤 객체의 상태가 변함에 따라 원하는 동작을 할 필요가 있는 경우에 사용하면 좋을 것 같다. 장점 - 객체와 관찰자 간의 연결을 설명합니다. - 브로드 캐스트 유형 통신을 지원합니다. 사용시기 - 한 객체의 상태..

행동패턴 목록 책임연쇄 패턴 (Chan of Responsibility Pattern) 커맨드 패턴 (Command Pattern) 해석자 패턴 (Interpreter Pattern) 반복자 패턴 (Iterator Pattern) 중재자 패턴 (Mediator Pattern) 메멘토 패턴 (Memento Pattern) 관찰자 패턴 (Observer Pattern) 상태 패턴 (State Pattern) 전략 패턴 (Strategy Pattern) 템플릿 패턴 (Template Pattern) 상태를 저장하고 복원하는 기능이 필요한 경우에 사용하면 유용할 듯 하다. 장점 - 캡슐화 경계를 유지합니다. - 발신자를 단순화합니다. 사용시기 - 실행 취소 작업을 구현하는데에 쓰입니다. - 대부분의 소프트웨어에..

행동패턴 목록 책임연쇄 패턴 (Chan of Responsibility Pattern) 커맨드 패턴 (Command Pattern) 해석자 패턴 (Interpreter Pattern) 반복자 패턴 (Iterator Pattern) 중재자 패턴 (Mediator Pattern) 메멘토 패턴 (Memento Pattern) 관찰자 패턴 (Observer Pattern) 상태 패턴 (State Pattern) 전략 패턴 (Strategy Pattern) 템플릿 패턴 (Template Pattern) 메시지 기반으로 무언가를 구현하려고 할 때 사용하면 유용할 것 같다. 특히 채팅관련 기능은 대부분의 서비스에 들어가기 때문에 꼭 사용되어야 할 것 같다. 장점 - 클래스 수를 분리합니다. - 객체 프로토콜을 단순화..

행동패턴 목록 책임연쇄 패턴 (Chan of Responsibility Pattern) 커맨드 패턴 (Command Pattern) 해석자 패턴 (Interpreter Pattern) 반복자 패턴 (Iterator Pattern) 중재자 패턴 (Mediator Pattern) 메멘토 패턴 (Memento Pattern) 관찰자 패턴 (Observer Pattern) 상태 패턴 (State Pattern) 전략 패턴 (Strategy Pattern) 템플릿 패턴 (Template Pattern) 요즘에는 for ... in 문을 사용해도 동일한 효과를 얻을 수 있다고 생각하지만 속도측면에서는 어떤부분이 더 나은지 알아볼 필요가 있을 것 같다. 장점 - 컬렉션 탐색의 변형을 지원합니다. - 컬렉션에 대한 인..

행동패턴 목록 책임연쇄 패턴 (Chan of Responsibility Pattern) 커맨드 패턴 (Command Pattern) 해석자 패턴 (Interpreter Pattern) 반복자 패턴 (Iterator Pattern) 중재자 패턴 (Mediator Pattern) 메멘토 패턴 (Memento Pattern) 관찰자 패턴 (Observer Pattern) 상태 패턴 (State Pattern) 전략 패턴 (Strategy Pattern) 템플릿 패턴 (Template Pattern) 번역 패턴이기 때문에 특정 포맷을 파싱하는 경우에 사용할 수 있을 것 같지만, 주로 언어를 번역하는데 쓰인다고 한다. 아직은 어떤 용도로 써야할지 잘 모르겠다. 장점 - 문법을 바꾸고 확장하는 것이 더 쉽습니다. ..

행동패턴 목록 책임연쇄 패턴 (Chan of Responsibility Pattern) 커맨드 패턴 (Command Pattern) 해석자 패턴 (Interpreter Pattern) 반복자 패턴 (Iterator Pattern) 중재자 패턴 (Mediator Pattern) 메멘토 패턴 (Memento Pattern) 관찰자 패턴 (Observer Pattern) 상태 패턴 (State Pattern) 전략 패턴 (Strategy Pattern) 템플릿 패턴 (Template Pattern) 커맨드를 추가하고 난 다음 Receiver, Invoker 클래스만 수정하기만 하면 바로 추가된 커맨드를 사용할 수 있다. 지금은 이 커맨드라는 부분이 어떤 장치에 들어가는 프로그램에 사용하는 경우에 좀 더 적합한..

행동패턴 목록 책임연쇄 패턴 (Chan of Responsibility Pattern) 커맨드 패턴 (Command Pattern) 해석자 패턴 (Interpreter Pattern) 반복자 패턴 (Iterator Pattern) 중재자 패턴 (Mediator Pattern) 메멘토 패턴 (Memento Pattern) 관찰자 패턴 (Observer Pattern) 상태 패턴 (State Pattern) 전략 패턴 (Strategy Pattern) 템플릿 패턴 (Template Pattern) 처음에 여러 절차에 따라서 테스트를 하기 위한 경우에도 이렇게 책임 연쇄패턴을 써서 돌려봐도 좋을 것 같다. 유연성도 있고, 하나의 클래스가 하나의 역할을 하기 때문에 여러가지 작업을 하나하나 적용하고 순서도 바꾸..
옵서버 패턴 Observer 패턴에서는 관찰 대상의 상태가 변화하면 관찰자에게 알려준다.Observer 패턴은 상태 변화에 따른 처리를 기술할 때 효과적이다.옵서버 패턴은 데이터의 변경이 발생했을 경우 상대 클래스나 객체에 의존하지 않으면서 데이터 변경을 통보하고자 할 때 유용하다.예를 들어 새로운 파일이 추가되거나 기존 파일이 삭제되었을 때 탐색기는 이를 즉시 표시할 필요가 있다. 탐색기를 복수 개 실행하는 상황이나 하나의 탐색기에서 파일 시스템을 변경했을 때는 다른 탐색기에게 즉각적으로 이 변경을 통보해야 한다. 다른 예로는 차량의 연로가 소진될 때까지의 주행 가능 거리를 출력하는 클래스, 연료량이 부족하면 경고 메시지를 보내는 클래스, 연료량이 부족하면 자동으로 근처 주유소를 표시하는 클래스 등에 ..