[問題] 利用factory pattern避免constructor失敗

作者: ken771209 (傷心人不會醉)   2020-04-07 20:21:36
開發平台(Platform): Win10
win10
編譯器(Ex: GCC, clang, VC++...)+目標環境(跟開發平台不同的話需列出)
vc++
額外使用到的函數庫(Library Used): (Ex: OpenGL, ...)
No
問題(Question):
目前code裡面有一段constructor,裡面進行的操作有error發生的可能性,並不是
單純assign參數或者簡單計算。
例如這個constructor需要open a file,但是有失敗的可能性,既有的constructor都是
預設不會失敗,但是並不太保險,因此有人建議可以使用factory pattern來處理這個問
題,不過查了一些資料都看不到factory pattern哪部分的實作概念跟這個有關,因此想
來問問看大家是否有碰過類似的問題?
ps. 使用linux的open or windows的_sopen_s
餵入的資料(Input):
一個檔案為constructor的input value
預期的正確結果(Expected Output):
類似constructor的操作,可以用factory pattern實現,且可以抓到error
錯誤結果(Wrong Output):
補充說明(Supplement):
做了兩天功課沒有發現比較類似的實作,希望有大神可以給點提示
作者: loveme00835 (髮箍)   2020-04-07 21:10:00
你是不是忘記除非加上 noexcept 不然我們應該假設每個函式都會 throw? 而這就是一種報錯的方式
作者: ggBird (ggBird)   2020-04-07 21:45:00
Two Phase Construction
作者: Caesar08 (Caesar)   2020-04-08 01:16:00
如果只是要open file,何不移出constructor,只傳stream就沒有open file會失敗的問題
作者: ken771209 (傷心人不會醉)   2020-04-08 09:29:00
謝謝各位大大,two phase construction的key word比較接近我需要的東西,我會再去找些資料,感謝

Links booklink

Contact Us: admin [ a t ] ucptt.com