看板 C_Sharp 關於我們 聯絡資訊
各位大大: 最近遇到一個設計上的問題,想請問各位大大,是否有方式可以解決,此案子是前人開 發,需要改變一些流程上的東西,大致上是這樣的 Class A{ public void Action(){ A1(); A2(); A3(); } privide void A1(){} privide void A2(){} privide void A3(){} } 在controller中 ActionResult Index(){ A a = new A(); a.Action(); return View(); } -------------------原始大致上是上面,是經過簡化後的---------- 需求是這樣的,我需要在A2()與A3()中間,加入一個void, 將原本的流程改為 A1();A2();B1();A3(); 但,我不想要去改變A這個class,因為種種原因,請問有什麼方式可以處理這樣的 問題 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 122.116.73.164 ※ 文章網址: https://www.ptt.cc/bbs/C_Sharp/M.1514033125.A.D3D.html
pzyc79: 繼承A 覆寫Action 12/23 21:33
pzyc79: 不過Action要加上virtual private要改成protected 12/23 21:38
Litfal: 除非他原本有挖好事件,不然不太可能完全不改A 12/23 23:13
wind681201: 這就麻煩了,因為class A是整個系統的樣版,不能變更 12/24 00:32
testPtt: 不能擴增嗎? 多寫個Action2 12/24 07:46
wind681201: 怎樣的擴增呢? 12/24 16:40
testPtt: class A加個Action2 反正不影響別人用class A 12/24 16:54
wind681201: 有考慮過,但就還是更動了別人的程式碼 12/24 19:12
testPtt: 那就只能生個class B給他 12/24 20:08
pzyc79: 把程式碼複製貼上 改class名稱或命名空間 這樣總行了吧 12/24 21:54
wind681201: 後來我決定,給個屬性,用Action的方式來處理 12/24 23:08