看板 C_Sharp 關於我們 聯絡資訊
想請問說 我要整合兩種廠商的相機 A跟B 在UI可以做切換 一次只能選一種用 A的方法是包在一個class 可以編輯 B的方法是包在dll裡面的inteface 無法編輯 目前想法是創一個空的interface 然後皆繼承於他 A_class : I_ccd B_interface : I_ccd -->當然因為無法編輯所以無法在後面加": I_ccd" 然後定義物件的格式 private I_ccd obj_ccd; 然後視使用者勾選哪一個來決定實體成A還是B if(flag) this.obj_ccd = new A_class(); else this.obj_ccd = B_Vander.GetInstance(); 在使用時就是 public void TakePicture() { if (obj_ccd is A_class) obj_ccd.Focus(); obj_ccd.Snap(); else obj_ccd.Grab(); } 一來是卡在一開始dll無法編輯的問題 二來好像不是很好的寫法... 請問有什麼方法可以修改或是有更好的寫法? 感謝! -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 220.134.146.2 ※ 文章網址: https://www.ptt.cc/bbs/C_Sharp/M.1512842816.A.724.html ※ 編輯: l8PeakNeymar (220.134.146.2), 12/10/2017 02:09:24
t64141: 建立一個類別C,內含AB兩家,在C中決定要使用哪一家 12/10 02:15
t64141: 也就是不要去想改廠商提供的程式,而是讓你的類別依照使 12/10 02:18
t64141: 用者的選擇而去操作不同廠商的相機這樣如何? 12/10 02:18
YahooTaiwan: 建兩種相機的 Adapter,再用一個工廠,根據使用者的 12/10 08:07
YahooTaiwan: 選擇決定要生產哪種 Adapter 12/10 08:07
vi000246: 建一個interface 裡面有方法GetPic() 建類別A跟B 12/10 15:50
vi000246: 皆實作GetPic()方法 B的實作就是呼叫dll的方法 12/10 15:50