天天看點

學校院系展示問題

  • 1個學校中有多個學院,1個學院中有多個系
  • 學校院系展示問題
  • 傳統方案解決學校院系展示問題
1) 将學院看做是學校的子類,系是學院的子類,這樣實際上是站在組織大小來進行分層次的
2) 實際上我們的要求是 :在一個頁面中展示出學校的院系組成,一個學校有多個學院,一個學院有多個系, 是以這種方案,不能很好實作的管理的操作,比如對學院、系的添加,删除,周遊等
3) 解決方案:把學校、院、系都看做是組織結構,他們之間沒有繼承的關系,而是一個樹形結構,可以更好的實作管理操作。 => 組合模式      
  • 組合模式簡介
1) 組合模式(Composite Pattern),又叫部分整體模式,它建立了對象組的樹形結構,将對象組合成樹狀結構以表示“整體-部分”的層次關系。
2) 組合模式依據樹形結構來組合對象,用來表示部分以及整體層次。
3) 這種類型的設計模式屬于結構型模式。
4) 組合模式使得使用者對單個對象群組合對象的通路具有一緻性,即:組合能讓客戶以一緻的方式處理個别對象以及組合對象      
  • 原理類圖
  • 學校院系展示問題
1) Component:這是組合中對象聲明接口,在适當情況下,實作所有類共有的接口預設行為,用于通路和管理Component子部件, Component可以是抽象類或者接口
2) Leaf: 在組合中表示葉子節點,葉子節點沒有子節點
3) Composite:非葉子節點,用于存儲子部件,在Component接口中實作子部件的相關操作,比如增加(add),删除(remove)      
  • 組合模式解決這樣的問題,當我們的要處理的對象可以生成一顆樹形結構,而我們要對樹上的節點和葉子進行操作時,它能夠提供一緻的方式,而不用考慮它是節點還是葉子

繼續閱讀