【发布时间】:2014-11-23 15:40:31
【问题描述】:
我正在尝试找到一种优雅的方式来实现一种易于维护的决策算法,因为决策条件可能经常变化。
我将在这里尝试更具体的示例:
假设我正在尝试管理餐厅厨房的烹饪厨师团队。
每个厨师都知道如何烹制 3 种派:苹果派、南瓜派和覆盆子派,以及 2 种比萨:奶酪比萨和培根比萨。他们都知道如何烹饪所有东西。
现在,我想向这些主管发送订单,告知客户即将发生的事情。
条件是:
酋长一次只能做一个馅饼。例如,如果我命令厨师做苹果派,我不能命令他做覆盆子派或南瓜派,除非苹果派做好或我发送了取消苹果派的请求。
考虑到不同的客户,我可以让厨师一次最多做 5 个比萨饼。
我想创建一个算法,返回允许我发送给特定厨师的一组订单,关于他已经在烹饪的东西。
我正在使用 C++。 我可以写一个简单的 switch/case 语句,但是如果条件改变或添加新的馅饼,维护起来就不容易了,所以......
我有点卡住了,真的不知道如何封装条件和决策,以减少条件之间的耦合,并在馅饼烹饪条件下轻松维护。
您将如何处理复杂的决策算法实现?
【问题讨论】:
-
如果您正在寻找它的一般设计决策,programmers.se 可能更适合这个问题。
-
那我会转移我的问题,谢谢
标签: c++ maintenance design-decisions