Summary
In this chapter, we demonstrated several of the Java 8 functional features to create a Zork-like game. Using console input, a player can navigate through a world picking up and dropping items along the way. New worlds can be configured using a file containing the description of the world.
We showed how to use the command pattern to handle commands. The commands were implemented using a combination of lambda expressions and other methods. Adding command aliases involved adding a different keyword to a hash map of commands.
Streams were used in a number of places to simplify processing and make the code more readable. Also used in conjunction with lists and maps was the forEach
method, which replaced the need for imperative loops.
At several places in the chapter, we provided either an equivalent imperative solution or an equivalent functional solution for certain problems. In general, the functional approach was the better solution, as it was often cleaner and more maintainable. However...