프로그래머가이 패턴을 사용한다는 (명확한 방법으로) 사양을 작성 중입니다.이 패턴의 이름은 무엇입니까?
처리중인 데이터에 여러 필터를 적용해야합니다. 구성을 통해 해당 필터를 만들 수 있습니다. 그들 중 몇 개가있을 수도 있고 없을 수도 있습니다. 나는 수출 계급에서 그 논리를 원하지 않는다. (미래에 커질 수 있기 때문에, 지금은 예상 할 수없는 다른 종류의 필터로). 나는 하나씩 차례대로 실행하기를 원한다. 따라서 export 클래스에서 내부 배열에 객체를 저장해야하는 addFilter 메소드를 요청한 다음 실제 내보내기 프로세스가 실행될 때 실행되도록해야한다. .
질문의 명확성이 확실하지 않습니다. 그것은 쇠사슬에 묶인 전략과 같지만 정확히 필터가 필요하지 않기 때문에 전략이 아닙니다.
다시 말하면 질문입니다. 사양에서이 패턴을 어떻게 호출해야합니까?
편집 : 내가 할 노력하고있어의 예 :
$report = new Report();
$report->addFilter(new RemoveSpaces())
->addFilter(new SubstituteText($predefined_substitutions_array)
->addFilter(new FixCapitals())
->addFilter(new Encode("utf8"));
echo($report->generate()); // filters are actually used during generation.
기발한, 사용자는 대문자로 표시 할 것인지, 대체 무엇을 텍스트, RemoveSpaces 여부를 결정 할 수 있어야한다 단어 또는하지, 어떤 인코딩을 사용할 것인가 등이 있습니다. 앞으로 사용자 (클라이언트, 실제로) 요청시 일부 필터가 추가 될 것입니다.
foreach($this->filters as $current_filter) {
$data = $this->filters[$current_filter]->applyTo($data);
}
당신이 이야기하고있는 것을 설명하기 위해 의사 코드 예제를 추가 할 수 있습니까? –
수정 된 질문보기 –