oop — структура класса в иерархическом поиске с переполнением стека

Я просто изучаю объектно-ориентированное проектирование и пытаюсь понять, как наследование классов может работать в той форме, которую я делаю в PHP. Я делаю форму поиска для базы данных выпускников (для внутреннего использования). Вы выбираете период выпуска для поиска пяти или десятилетнего интервала, затем у вас есть переключатели, которые позволяют вам искать детали об обучении выпускников, ИЛИ детали их курсов степени, ИЛИ какие рабочие места у них были. Есть несколько вариантов, чтобы уточнить поиск после того, как вы выбрали одну из переключателей.

Некоторый код является общим для всех поисков. Например, в каждом поиске вы должны сначала выбрать период выпуска. Помимо этого, поиски совершенно разные. Все поиски в настоящий момент обрабатываются одним классом (alumniSearch). Работает нормально, но длиной 1000 строк!

Я не знаю, как разделить класс на подклассы. Как работает наследование, когда вы хотите сначала вызвать родительский класс и иметь прямой доступ к нужному дочернему классу?

Будет ли ответ что-то вроде простого скрипта контроллера в alumniSearch (в псевдокоде):

if (search_choice = "job search") {
include jobSearch.php;
} elseif (search_choice = "school search") {
include schoolSearch.php;
} ...

Я посмотрел на абстрактные методы и интерфейсы, но из того, что я понимаю, дочерний класс должен будет определить абстрактные методы своего родителя. Поиски не имеют одинаковых методов, поэтому они не могут иметь этот общий шаблон.

-1

Решение

Контроллер будет массивом со ссылкой на метод, и вы будете циклически проходить по массиву и вызывать правильный метод по ссылке.

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]