2012-09-22 2 views
2

왜 전략 패턴에서 컨텍스트 클래스가 필요합니까?전략 디자인 패턴에서 Context 클래스가 필요한 이유는 무엇입니까?

예를 들어, zip 또는 rar 압축을 사용하여 파일을 압축하려고합니다. 우리는 다음 파일들과 함께 전략 패턴을 사용하여 이것을 해결할 수 있습니다.

1.ICompressionStrategy...Its interface 
2.ZipCompressionStrategy ..implements IcompressionStrategy 
3.RarCompressionStrategy ..implements IcompressionStrategy 
4.CompressionContext..Inject IcompressionStrategy 
5.Client..Inject CompressionContext 

위의 시나리오에서 CompressionContext 클래스가 필요한 이유는 무엇입니까? 왜 IcompressionStrategy를 Client 클래스에 삽입 할 수 없습니까?

위 시나리오에서 CompressionContext 클래스를 사용하면 어떤 이점이 있습니까? 그걸 피할 ​​수 있을까요? 여기

내가 약

http://java.dzone.com/articles/design-patterns-strategy

답변

1

전략 패턴의 아이디어는 변수 전략을 사용하여 작업의 일부을 사용자 정의하는 것입니다 이야기하고있는 예이다.

위의 예에서 문맥은 단순히 파일 목록을 압축하는 것 이상을 수행합니다. 예를 들어 폴더 계층을 반복하고 압축 할 파일을 선택하고 목록에 넣은 다음 압축 전략을 사용하고 압축 결과를 다른 위치에 쓰는 클래스 일 수 있습니다. 이 알고리즘은 전체 알고리즘의 압축 단계에만 사용되는 압축 전략을 제공하여 사용자 정의 할 수 있습니다.

+0

그건 의미가 있습니다. Nizet에게 감사드립니다! .. 제게 좋은 디자인 패턴을 배우기위한 훌륭한 링크 나 책을 제안 해 주시겠습니까? –

+0

위키피디아는 디자인 패턴을위한 훌륭한 자료입니다. http://en.wikipedia.org/wiki/Design_Patterns를 참조 할 수 있습니다 (유형별 패턴 섹션 참조). – Atul

관련 문제