物件導向範型

200
-1

Published on

2 Comments
0 Likes
Statistics
Notes
  • Be the first to like this

No Downloads
Views
Total Views
200
On Slideshare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
1
Comments
2
Likes
0
Embeds 0
No embeds

No notes for slide

物件導向範型

  1. 1. 物件導向範型 Ted
  2. 2. • 講師與學生,老師的責任就是讓學生知道 下堂課要去哪上課 – 獲取聽課名單 – 針對每個人 • 找到每個人要去聽的課 • 找到聽課的地點 • 找到前往路徑 • 告訴他們
  3. 3. • 但是實際上我們真的會這樣做嗎?
  4. 4. 責任的轉移 • 講師告訴學生下堂課在哪,剩下的就是學 生的責任了
  5. 5. 差別在哪 • 第一種方法講師必須關注許多細節,因為 所有的事情都由講師負責 • 第二種方法講師只負責告知,接著學生負 責前往所屬課堂
  6. 6. • 第二種方法的好處在於 – 假設今天增加了助教研究生,助教需要在下堂 課前收集本堂課的學生對課程的評價 – 對講師來說依然只需要告訴學生下堂課的位置, 學生各自會負責該做的責任,研究生會蒐集評 價並前往下堂課,普通學生會前往下堂課,翹 課的學生會自行翹課….etc – 各司其職(負責自己的責任)
  7. 7. • 第二種方法有以下三方面不同 – 人們對自己的行為負責 – 講師將不同類型的人(普通學生&研究生),一視 同仁,把他們都視為學生,並且告知他們必須 前往下一堂課 – 講師不需要知道學生如何前往下一間教室
  8. 8. • 用術語來說明的話就是 – 概念 • 軟體要負責甚麼(abstract) – 規約 • 怎麼使用軟體(interface) – 實作 • 軟體怎麼履行責任(implementation)
  9. 9. • 講師要負責甚麼 – ClassRoom getnextClassRoom() • 學生必須做甚麼 – gotoNextClassRoom(ClassRoom room)
  10. 10. 多型 • Abstract class 學生 • Concrete class 普通學生、研究生 • 講師只需要針對學生做處理即可 • 普通學生與研究生會負責自己該負責的責 任
  11. 11. 封裝的概念 • 講師不知道哪些是一般學生,哪些是研究 生,對講師隱藏了學生的類別(也就式封裝 了學生) • 雖然學生都是前往下堂課堂,但是行為卻 不同
  12. 12. 封裝的好處 • 使用者不需在操心實做的部分,使用者只 需要知道想要做甚麼,剩下的交由被呼叫 者去處理 • 可以在不考慮呼叫者的情況下實作(testable) • 其他物件對該物件內部是未知的,例如講 師呼叫gotonextClassRoom,但是講師並不 知道普通學生、研究生實際做了哪些事情
  13. 13. Q&A
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×