[問題] 求助流程改變

看板C_Sharp作者 (阿風~~)時間6年前 (2017/12/23 20:45), 編輯推噓0(0011)
留言11則, 4人參與, 6年前最新討論串1/1
各位大大: 最近遇到一個設計上的問題,想請問各位大大,是否有方式可以解決,此案子是前人開 發,需要改變一些流程上的東西,大致上是這樣的 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

12/23 21:33, 6年前 , 1F
繼承A 覆寫Action
12/23 21:33, 1F

12/23 21:38, 6年前 , 2F
不過Action要加上virtual private要改成protected
12/23 21:38, 2F

12/23 23:13, 6年前 , 3F
除非他原本有挖好事件,不然不太可能完全不改A
12/23 23:13, 3F

12/24 00:32, 6年前 , 4F
這就麻煩了,因為class A是整個系統的樣版,不能變更
12/24 00:32, 4F

12/24 07:46, 6年前 , 5F
不能擴增嗎? 多寫個Action2
12/24 07:46, 5F

12/24 16:40, 6年前 , 6F
怎樣的擴增呢?
12/24 16:40, 6F

12/24 16:54, 6年前 , 7F
class A加個Action2 反正不影響別人用class A
12/24 16:54, 7F

12/24 19:12, 6年前 , 8F
有考慮過,但就還是更動了別人的程式碼
12/24 19:12, 8F

12/24 20:08, 6年前 , 9F
那就只能生個class B給他
12/24 20:08, 9F

12/24 21:54, 6年前 , 10F
把程式碼複製貼上 改class名稱或命名空間 這樣總行了吧
12/24 21:54, 10F

12/24 23:08, 6年前 , 11F
後來我決定,給個屬性,用Action的方式來處理
12/24 23:08, 11F
文章代碼(AID): #1QFa_bqz (C_Sharp)