Programming In The Large
Let's add a feature to our Blackjack simulation: analysis of results. We have several paths to implement this added feature. There are two dimensions to our considerations, leading to a large number of combinations. One dimension of our consideration is how to design the new features:
Add a function
Use the Command design pattern
The other dimension is how to package the new features:
Write a new top-level script file. We would have new commands based on files with names such as
simulate.py
andanalyze.py
.Add a parameter to an application that allows one script to perform the simulation or analysis. We would have commands that look like
app.py simulate
andapp.py analyze
.
All four combinations are sensible ways to implement this. We'll focus on using the command design pattern. First, we'll revise our existing application to use the command design pattern. Then, we'll extend our application by adding features.
Designing command classes
Many applications involve an implicit...