Поиск данных может быть реализован различными, зачастую несовместимыми методами.
В таких случаях, при использовании ООП, предлагается разработка базового класса-предка (суперкласса),
в который, кроме набора статических методов,
будут включены и основные
абстрактные методы, необходимые для организации поиска.
Разработанные на основе суперкласса классы-потомки (подклассы)
реализуют указанные методы, каждый - своим способом. Задача заключается в разработке трех классов-поисковиков:
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.