享元模式 Composite
生活随笔
收集整理的這篇文章主要介紹了
享元模式 Composite
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
介紹享元模式(Flyweight),運行共享技術有效地支持大量細粒度的對象,避免大量擁有相同內容的小類的開銷(如耗費內存),使大家共享一個類(元類)。
?
如果以繪圖為例的話,一個文字是一個繪圖元件,一個線段是一個繪圖元件,而一個長方形也是一個繪圖元件,這些繪圖元件可以組成一個圖片,如果將這個圖片也 視作一個繪圖元件,則這么遞回繪圖下去,就可以組合成一個較大的、復雜的圖形元件,這樣的目的可以使用Composite模式來解決。對于使用者而言,無論是文字、線段或長方形,甚至是組合后的圖片元件,它們都擁有一個共同的行為,使用者基本上并不會感覺出它們之間的操作有任何的不同,您可以拖曳、放大、縮小等等,這些行為都是一致的。
以 UML 來表示上面這個例子的結構:?
對于Text、Line與Rectangle而言,Picture是一個容器,然而Picture繼承Graphic類,所以它也是一個繪圖元件,您可以進一步的將Picture組合至另一個Picture中,以形成較大的、復雜的圖形。
組合模式的UML結構圖如下所示:?
依此架構,您可以遞回的組合圖形元件,例如:
除了繪圖元件之外,一些具有層次性或組合性的物件也可以使用Composite模式,像是電路元件、設備元件等等,使用Composite模式可以大大減低這些元件設計的復雜度。
轉載于:https://www.cnblogs.com/xiari/p/3376244.html
總結
以上是生活随笔為你收集整理的享元模式 Composite的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: RSS订阅
- 下一篇: sqlserver中查找长时间未提交事务