2012-02-17 4 views
2

전략 패턴에서 전략 및 기술의 논리를 일부만 수행하면 자신 만의 코드를 유지할 수 있습니다. 여전히 전략 패턴이됩니까?전략 패턴은 정확합니다

예 : 전략 패턴을 사용하여 두 가지 연결 목록에서 요소가 정렬되는 방식에 영향을줍니다. 내가 한 것은 주어진 요소 다음에 삽입하고 모든 요소를 ​​루프시킨 다음 전략 패턴을 false로 되돌리려는 요소 앞에 새 요소를 삽입하려는 경우 전략 패턴을 지정하는 것입니다.

"PURE"전략 패턴을 사용하려면 모든 전략을 전략 패턴에서 완료해야합니까?

public interface IInsertStrategy<T> { 
public boolean insertAfter(T insertValue, T testValue); 
} 

하고 추가 코드

public void add(T value) 
{ 
    DoublyLinkedNode<T> workingNode = head; 

    // Loop though nodes, to and with the tail 
    while(workingNode.next != null) 
    { 
     workingNode = workingNode.next; 
     /* Keep going until the strategy is not true any more 
     * or until we have the last node. */ 
     if(workingNode.next == null || 
      !insertStrategy.insertAfter(value, workingNode.value)) 
     { 
      workingNode.previous.append(value); 
      break; 
     } 
    } 
} 

답변

2

그것은 IInsertStrategy의 구현 전략 알고리즘을 가지고 청소기입니다. 3 번째 알고리즘을 생각해 냈지만 add 함수에서 충돌이 발생하여 올바르게 수행 할 수 없다고 상상해보십시오. 첫 번째 장소에서 삽입 알고리즘을 추상화하는 목적을 무효화하는 코드의 두 부분을 만지게됩니다.

+0

이것은 내가 생각하는 곳, 감사합니다! – Androme