Before I can start writing things, I need to establish definitions for the terms I will be using. This will make it easier to understand what I’m talking about, and reduce confusion. I am trying to avoid using terms and class names currently used by Java, that I might use differently, and keep the same usage for those already defined in Java. For example, in Java, the term Collection has a specific meaning, so when I use the term Collection (capitalized) I am referring to the Java definition while a lower case version refers to the more common definition of the term.
The sport/game of bowling has its own dictionary, for those who may not be familiar with it.
| Term | Definition |
| Bowler | A person who may belong to zero or more leagues. The Bowler becomes a Member when they join a league. |
| DelimitedFileIO | An implementation of the Shovel interface which allows data to be read from a delimited text file and converted into a Record or other object which supports the Shovel interface. |
| Shovel | An interface defining the methods required by DelimitedFileIO for reading from a delimited text file and creating other Objects. |
| Store | A collection of Records. Since it may be implemented using a List, Set, or Map, I’ve given it a name which doesn’t indicate the implementation method, and doesn’t conflict with any Java names. |
| Mediator | As described in Design Patterns , it mediates information passing between Stores. |
| Member | A Bowler who joins a league and becomes a regular or substitute player. |
| Record | A class which has Tics which define it. An example is a Bowler. |
| Shovel | An interface defining the way data will be passed from the data store into the program to form Objects such as Records. An example implementation is DelimitedFileIO. |
| Tic | A class for a characteristic of a Record. Examples are last name, birthday, and phone. They can be different types of objects such as String, Integer, Date, and List. |