[問題] Interface整合

看板C_Sharp (C#)作者 (十八尖山內馬爾)時間7年前 (2017/12/10 02:06), 7年前編輯推噓2(205)
留言7則, 3人參與, 7年前最新討論串1/1
想請問說 我要整合兩種廠商的相機 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

12/10 02:15, 7年前 , 1F
建立一個類別C,內含AB兩家,在C中決定要使用哪一家
12/10 02:15, 1F

12/10 02:18, 7年前 , 2F
也就是不要去想改廠商提供的程式,而是讓你的類別依照使
12/10 02:18, 2F

12/10 02:18, 7年前 , 3F
用者的選擇而去操作不同廠商的相機這樣如何?
12/10 02:18, 3F

12/10 08:07, 7年前 , 4F
建兩種相機的 Adapter,再用一個工廠,根據使用者的
12/10 08:07, 4F

12/10 08:07, 7年前 , 5F
選擇決定要生產哪種 Adapter
12/10 08:07, 5F

12/10 15:50, 7年前 , 6F
建一個interface 裡面有方法GetPic() 建類別A跟B
12/10 15:50, 6F

12/10 15:50, 7年前 , 7F
皆實作GetPic()方法 B的實作就是呼叫dll的方法
12/10 15:50, 7F
文章代碼(AID): #1QB2P0Sa (C_Sharp)
文章代碼(AID): #1QB2P0Sa (C_Sharp)