В паттерне стратегии можно ли использовать только некоторую логику в стратегии, а навыки сохранять часть в моем собственном коде, будет ли это все еще паттерном стратегии?
Пример: я использую шаблон стратегии, чтобы повлиять на порядок элементов в моем списке с двойной связью.
Я просто сделал указание шаблона стратегии, если он хочет быть вставлен после данного элемента, а затем зациклил все элементы, а затем вставил новый элемент перед тем элементом, который сделал шаблон стратегии, отправкой ложного ответа.
Или вся сортировка должна быть сделана в паттерне стратегии, чтобы он был "ЧИСТЫМ" паттерном стратегии?
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;
}
}
}