|
|
1
2
我认为开放式/封闭式方法和干式方法是好的原则。但它们并不神圣。目标应该是使代码可靠和可维护。如果您必须执行非自然的行为来遵守O/C或DRY,那么您可能只是让代码变得不必要的更复杂,而没有任何实质性的好处。 这是 something I wrote 几年前关于我是如何做出判断的。 |
|
|
2
1
您不需要让代码同时遵循所有可能的原则。我们的目标应该是尽可能多地坚持这些范式,而不是更多。不要过度设计您的解决方案——否则,您很可能会得到意大利面条式的代码。 |
|
|
3
1
|
|
|
4
1
您可以将创建消息的类(MessageOne、MessageTwo…)转换为消息工厂,并在初始化时向顶级MessageFactory注册它们。 消息工厂可以保存MessageX::Header的映射->MessageXFactory类映射的实例。 在CreateMessage中,您将根据消息头找到MessageXFactory的实例,检索对MessageXFactory的引用,然后调用将返回实际MessageX实例的方法。
例子:
|
|
|
5
0
除了开玩笑,这是一种情况,我会使用一个小的模板化工厂类(如果您将char消息类型放在非类模板arg中,或者仅将该char作为状态,则该类是无状态的)来接受流&新的模板是否在其T模板arg上传递流&然后把它还给我。您将需要一个小的注册器类来声明为具有全局作用域的静态类,并向管理器注册具体的T实例化工厂(通过抽象基类指针)(我们有一个接受“工厂域”键的通用类)。在您的情况下,我不会使用映射,而是直接使用256“插槽”数组来放置factory_base*。
|
|
AstralHex · 矩阵乘法代码工作不正常 1 年前 |
|
|
Fishie · 作为类成员的智能指针是否仍然自动释放?[关闭] 1 年前 |
|
|
Die4Toast · 递归调用成员箭头运算符-> 1 年前 |
|
|
Anka Hanım · 关于结构和动态数组地址的问题 1 年前 |