Поиск данных может быть реализован различными, зачастую несовместимыми методами.
В таких случаях, при использовании ООП, предлагается разработка базового класса-предка (суперкласса),
в который, кроме набора статических методов,
будут включены и основные
абстрактные методы, необходимые для организации поиска.
Разработанные на основе суперкласса классы-потомки (подклассы)
реализуют указанные методы, каждый - своим способом. Задача заключается в разработке трех классов-поисковиков:
TAbstractFinder - базовый абстрактный суперкласс, предполагающий организацию поиска данных. Экземпляры этого класса не создаются.
TLineFinder - подкласс TAbstractFinder, реализующий функциональность линейного поиска.
TBinFinder - подкласс TAbstractFinder, реализующий функциональность бинарного поиска.
Декларируемые возможности TAbstractFinder:
Классы TLineFinder и TBinFinder должны реализовать все абстрактные методы, заявленные в суперклассе, перекрыть при необходимости конструктор/деструктор, создать требуемые дополнительные поля и методы в приватной области.
Шаблон программы проверки:
...
var F:TAbstractFinder;
begin
F:=TLineFinder.Create([1,4,2,3,2,1]);
// F:=TBinFinder.Create([1,4,12,13,21,101]);
// Далее - проверка работоспособности поисковика.
// Смена типа поисковика в предыдущих строках
// не должна влиять на результат работы программы.
F.free;
end.