![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
设计模式
设计模式
NingDream816
合抱之木始于毫末,万丈高楼起于垒土!
展开
-
C++20之设计模式:状态模式
首先,这是值得强调的Boost.MSM是Boost中两种状态机实现之一,另一种是。我很确定还有很多其他的状态机实现。其次,状态机的功能远不止这些。例如,许多库支持分层状态机的思想:例如,一个生病(Sick)的状态可以包含许多不同的子状态,如流感(Flu)或水痘(Chickenpox)。如果你在处于感染流感的状态,你也同时处于生病的状态。最后,有必要再次强调现代状态机与状态设计模式的原始形式之间的差异。重复api的存在(例如)以及自删除的存在在我的书中是明确的代码气味。原创 2024-07-25 22:34:11 · 315 阅读 · 0 评论 -
C++20之设计模式:观察者模式
毫无疑问,本章中提供的代码是一个明显的例子,它过度思考和过度设计了一个超出大多数人想要实现的问题的方式。让我们回顾一下实现 Observer 时的主要设计决策:决定你希望你的 observable 传达什么信息。例如,如果你正在处理字段/属性更改,则可以包含属性名称。你还可以指定旧/新值,但传递类型可能会出现问题。你想让你的观察者成为tire class,还是你只需要一个虚函数列表?你想如何处理取消订阅的观察者?原创 2024-07-25 10:00:18 · 880 阅读 · 0 评论