2014-10-07 99 views
-1

我只是在學習面向對象的設計,並且正在努力瞭解類繼承如何以PHP的形式工作。我正在爲校友數據庫提供搜索表單(供內部使用)。你選擇一個畢業期間來搜索一個五年或十年的時間間隔,然後你可以通過單選按鈕來搜索關於校友學校的詳細信息,或者他們學位課程的詳細信息,或者他們有什麼工作。一旦你選擇了一個單選按鈕,有多種選擇可以優化你的搜索。使用PHP進行分層搜索時的類結構

某些代碼對所有搜索都是通用的。例如,在每次搜索中,您都必須先選擇畢業時間。除此之外,搜索是完全不同的。目前所有的搜索都由一個類處理(alumniSearch)。它工作正常,但是有1000行!

我不知道如何將類分成子類。當你想先調用一個父類並把它指向正確的子類時,繼承是如何工作的?

請問答案是這樣一個簡單的控制器腳本中alumniSearch(在僞代碼):

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

我看着抽象方法和但是從我瞭解的子類的接口必須界定其父的抽象方法。搜索沒有相同的方法,所以他們不能擁有這個通用模板。

+1

很難在沒有代碼的情況下給出任何有關重構的建議。這也不是堆棧溢出的意圖。我可能會建議你將你的代碼發佈到codereview.stackexchange.com – 2014-10-07 20:34:34

+0

好吧,夠公平的。我會看看codereview網站。 – MartinC 2014-10-07 21:38:25

回答

0

控制器將是一個引用該方法的數組,並且您可以遍歷該數組並通過引用調用正確的方法。

+0

你能給我一個簡單的例子嗎?謝謝! – MartinC 2014-10-07 21:40:06