作者wind681201 (阿風~~)
看板C_Sharp
標題[問題] 求助流程改變
時間Sat Dec 23 20:45:22 2017
各位大大:
最近遇到一個設計上的問題,想請問各位大大,是否有方式可以解決,此案子是前人開
發,需要改變一些流程上的東西,大致上是這樣的
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