Re: [問題] Design Pattern的使用
※ 引述《legnaleurc (CA)》之銘言:
: 需求是這樣的
: 程式的Input和Output是各種不同的檔案格式
: 檔案根據格式不同會有不同的額外微調選項
: 而不同的格式也會去影響到使用者介面的外觀
: 目前我的想法是
: Controller是一個物件
: Input和Output做為Controller的template參數(C++)
: 並被Controller繼承
: 類似policy一樣的東西
: 我對input和output都定義了一個接口給Controller使用
: 因此Controller可以正常地接受輸入和輸出的設定
: 但是現在問題出現了
: 輸入和輸出的設定,我不知道要怎麼和使用者介面溝通
: 具象一點地說
: 假設輸出格式可以是GIF或JPG
: GIF可以調整交錯
: JPG可以調整壓縮率
: (我亂舉的,別在這裡吐嘈吧)
: 但是使用者介面不可能把所有格式的選項全做在同一個視窗
: 我也不希望使用精靈式對話框
: 更重要的是在“介面”上的接口無法確定
: 另外一個問題是
: 就算用某種方式得知型別資訊
: 必須要使用者按下“執行”按鈕後
: Controller才真正產生實體
: 但是我不知道要怎樣才能保存型別或是環境資訊
: 直到要使用的前一刻才實體化
: 問題有點冗長,如果有言不及義的地方請見諒
: 謝謝
我的想法是, 每一種 "格式" 要自己
提供它的選項, 而 Main App 則負責管
理現有的 "格式", 並提供 interface
與使用者選擇格式.
當使用者選了某格式, Main App 便對
該格式取得其 "特有設定" 來顯示.
特有設定的提供方法, 簡單的做法是規定
格式 要提供一個 UI panel, 供 Main App
顯示出來然後 '格式' 自己負責讀取 '特
有設定 panel' 的資料 (Main App 只負責
把它顯示出來),
又或者複雜一點, "格式"
提出它要的額外設定, 比如說 "我要三個
extra fields, 第 1 叫 "interlace",
是 boolean 格式, 第 2 叫 "quality", 是
range select 格式, 上下限是多少, 第 3 個
field 叫 "comment", 是 text 格式, 最長多少 etc.
然後 Main App 負責把它們轉化成 UI (boolean
對映 check box, range select 對映 slider etc)
Main App 取得結果再傳給 "格式"
這個做法整個架構會有點複雜, UI 也不 flexible
但 "格式" 的 development 則變得很容易.
其實我不太看得懂你的做法, 首先 Controller
的作用不明. 其次你說 input/output 是以 template
parameter 的型式設與 controller, 但你要
知道 template 是 compile time 發生的,
你不可能 runtime 才把 input/output 的 class
傳給某 template (controller) 然後才 instantiate
它. (boost 也該有些 trick 做到類似的東西)
我也看不到為什麼你要用 template 來做.
alien
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 202.155.236.82
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 2 之 4 篇):
OOAD 近期熱門文章
PTT數位生活區 即時熱門文章