[问题] 利用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