| ▲ | sedatk an hour ago | |
Obviously, because it was a fictional, simplified example for the post. My real use case was more complicated and involved multiple developers working on different parts of that flow. The problem with if-else chains is it's easy for a programmer to forget to handle a case that another developer added in the called component. Unit tests can't help a spec miscommunication. But, visitor pattern can as it forces the handling logic to be complete. Hence my example at the end using discriminated unions and exhaustive pattern matching in F#. Much, much simpler with the same benefits. | ||