Class Diagram: Omino Core - ywchiao/cocoa GitHub Wiki
--- Warning! Warning!! Warning!!! ---
這裡所寫的一切,所有的一切,都有可能變動!
在整個專案到達 1.0 的里程碑 (milestone) 之前,這裡的一切都只反映當下的設計思維,
隨時可能因思維改變或現實考量而作修正。同時因為專案和文件的時差,它僅能儘可能地貼近實際的程式碼狀態。
--- End of Warning ---
這一頁介紹 Omino 語言核心模組的類別架構與說明,依序為
-
[Bricks: Action]
-
[Bricks: Flow Control]
-
[Bricks: Sensor]
Overview
Basic Bricks
上圖是 Omino 基礎類別的 class diagram。
基本上,Omino 的語法積木都是這四種基礎類別的衍生類別:
-
Brick:語法積木的基礎類別 (basis);Brick 定義了語法積木的基礎型別 (base type)及共通操作。
-
ActionBrick:代表動作積木或程式語言裡的陳述/運算式 (statement/expression)的基礎類別; 所有 Omino 程式的操作 (opertaion)積木都應該繼承 ActionBrick,並實作 (implement) ActionBrick 的 perform() 方法,以提供一致的程式介面 (api)。
-
BlockBrick:代表區塊積木。BlockBrick 本身並無 perform() 的方法,但提供一個有序串列 (ordered-list) 來記錄程式碼區塊裡的其它 Brick。像 LoopBrick (迴圈) /BranchBrick (分支) 等流程控制的動作積木就可能由一至多個 BlockBrick 構成。
-
SensorBrick:代表感測器積木。所有 SensorBrick 都只提供一個公開的方法:getValue(),用來取得感測器的狀態值。
Brick
ActionBrick
BlockBrick
BlockBrick 代表一段程式區塊;作為一個 Brick 的容器 (container),BlockBrick 本身並不具備_執行_的方法,但需提供:
* 插入 - void insert(int, Brick)
* 移除 - Brick remove(Brick)
* 下一步 - Brick next(void)
等方法介面,供 ActionBrick/UI 呼叫使用。
SensorBrick
SensorBrick 是所有感測器積木的基礎類別。在初始化階段,感測器積木應首先嘗試和 Arduino 上的韌體溝通,確認感測器存在且工作正常。