iT邦幫忙

2021 iThome 鐵人賽

DAY 28
0

細看 JUCE 框架的設計,可以看到一些 Design Pattern 實例。本文列出幾個。

Singleton

Singleton 帶來的副作用,理論上能不用就不用,但其帶來的便利,實務上卻是很難避開。JUCE 有一些組件以 Singleton 實作:

  • MessageManager 中的 getInstance 函數回傳 MessageManager 物件
  • JUCE GUI 應用程式繼承了 juce::Application,此類別又繼承了 JUCEApplicationBase,其 getInstance 函數回傳唯一的 juce::ApplicationBase 物件

Observer

幾乎每一個 JUCE GUI Component 都定義了 Listener 介面,用來接收 Component 的狀態變化。一個 Component 可以有多個 Listener 物件,即為 Component 之 Observer。

Publisher–subscriber

ChangeBroadcaster 定義的 Publisher 介面,減化實作細節。而 ChangeListener 則定義了 Subscriber 介面,讓開發者專注在收到通知時的邏輯。

Factory

AudioDeviceManager 用來產生 Audio 裝置相關物件。


上一篇
Day 26:擴充性
下一篇
Day 28:無法盡善盡美
系列文
JUCE 入門 @ 跨平台應用程式開發使用 C++29
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言