Mik*_*son 3 c++ constructor switch-statement
我正在我的程序中捕获一个网络数据包作为一个char*数组.数组的第一个字节表示我收到的数据包的类型,对于每种类型,我希望我的通用Packet基类的单独子类传递给字节数组以及它将被解释的位置.
我想避免使用switch语句,其中将评估数据包的第一个字节并调用相应的构造函数.首先,因为在OOP中你应该避免使用switch子句,其次是因为每次添加数据包类时我都不想在switch语句中添加单独的case.
我查看了工厂方法模式,但我不确定在这种情况下它是如何帮助我的,或者它是否能解决我的问题.
基本上我想要避免的是在10个不同的地方编辑我的代码只是为了添加一个数据包类.
"我想避免使用switch语句......"
在某些时候,无论你是在工厂还是其他地方这样做,你都需要区分这个字节.
一种避免的方法switch是创建一个create_class函数映射,并根据映射键(区分字节值)查找和调用它们.
该解决方案的优势在于,您create_class无需更改基本工厂代码即可轻松添加更多键和功能.