2011-10-03 18 views
4

我正在教幾個朋友一些基本的面向對象的PHP概念,我想給他們一些真實世界的例子,但很簡單,所以他們可以掌握語法和麪向對象的基礎知識。我已經給他們做了以下練習:創建一個抽象HTML表單創建的小類。您可以爲每個表單字段創建對象,每種類型的字段都有一個類。我也有一個接收表單字段對象的表單類。簡單的面向對象的習題來掌握基礎知識

你們有沒有其他的例子或練習的想法?謝謝!

回答

1

我一直喜歡進行面向對象的思維方式的一個簡單練習是採用一些簡單的現實世界概念並將其建模爲對象。這些概念可以是任何東西:

  • 咖啡壺
  • 一隻雞
  • 的自行車

這是非常語言無關,平臺無關的,等這個想法是要抽象出所有的實現細節(比如PHP和HTML),並着眼於面向對象的思想。這種物體的模型是如何看待的?它的屬性是什麼?它有什麼約束?它的行爲如何?它如何與其他對象交互?

您可以通過外部可觀察的特徵和行爲及其交互等有效地設計抽象類型,然後在PHP或任何其他語言選擇中實現這些抽象。但重點是將面向對象的思想從具體的實現中分離出來。

+1

我真的不喜歡抽象的例子,因爲他們實際上沒有做任何事情。如果沒有一些實踐練習和麪嚮應用,很難解釋面向對象的概念。 – Smithson

+1

解釋面向對象概念的最好方法是將其抽象化。面向對象是一種語言不可知的範例。否則,您將面臨學生陷入特定語言實施的風險。教這個概念,然後着手實施。 – Herbert

0

有些東西是可用/實用:

  • 幾乎每個人都似乎開始與數據庫抽象庫。很簡單的事
  • 抽象爲不同的緩存庫(內存緩存,APC,文件緩存)
  • 也許一個簡單的路由器
0

嘗試一個表生成類,它們接收一個數組,並根據它的內容顯示一個表。

0

這取決於他們已經知道了多少,如果他們有使用C++/C編程的經驗並且正在啓動OO,那麼來自數據庫,表單,向量等的例子可以工作,如果他們的經驗相對較少,那麼您有開始與抽象的或現實生活中的例子,例子引述另一回答

A coffee maker 
A chicken 
A bicycle 
etc. 

將在瞭解對象爲本的理念和理論工作的重大(儘管你提到你不喜歡這樣的例子)在它後面。他們必須看到如何一起工作組成一臺機器,每個組件(類)如何工作和交互(公共方法和接口),同時隱藏自己的功能,併爲其他組件(類)提供一組服務。

老師給出的非常受歡迎的例子是收音機,其中用戶不知道收音機內部是什麼以及它如何工作,用戶只知道它做了什麼,並且收音機使其功能對用戶可用通過面板上的按鈕使用。

這些基本的例子適合初學者,然後馬上就應該有一個與它相關的編程任務。一旦他們理解了基礎知識,我認爲應該使用編程和應用程序示例,而不是抽象示例。