[問題] Factory Pattern問題

看板C_and_CPP作者 (不下棋)時間8年前 (2016/12/15 12:41), 編輯推噓3(304)
留言7則, 3人參與, 最新討論串1/1
問題:在Factory Pattern不同Sub Class(Circle,Square,Rectangle)中, 有不同的function功能(print(),put(),push()), 請問我要如何設計才能讓Super Class(Shape)存取這些function呢? http://imgur.com/a/ps24S -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 106.1.121.132 ※ 文章網址: https://www.ptt.cc/bbs/C_and_CPP/M.1481805702.A.B0D.html

12/15 23:35, , 1F
無法,要馬做型別相依的多型,要馬把那些functions抽象出
12/15 23:35, 1F

12/15 23:35, , 2F
來放在superclass裡
12/15 23:35, 2F

12/15 23:36, , 3F
可以去多了解 category theory 和 subtyping 的關係
12/15 23:36, 3F

12/16 12:24, , 4F
用dynamic_cast直接變成你想要的type
12/16 12:24, 4F

12/16 12:24, , 5F
或是提供一個 exec("push","arg lis") 在base class
12/16 12:24, 5F

12/16 12:26, , 6F
或是參考Metaobject的方式
12/16 12:26, 6F

12/16 13:40, , 7F
visitor pattern
12/16 13:40, 7F
文章代碼(AID): #1OKe-6iD (C_and_CPP)