notes.md (1117B)
1 # Design 2 3 - These classes will be used: (indentation shows inheritance) 4 - Main 5 - Algorithm (interface) 6 - Caesar Cypher 7 - Keyed Caesar Cypher 8 - The other one 9 - Menu 10 - MenuItem 11 - InputOutput 12 13 - The main class will create the following objects: 14 - Input/Output data class 15 - Set via the command line menu, for the input and output files 16 - Instance of algorithm interface 17 - Do encryption and decryption via algorithm interface object 18 19 # Checklist 20 21 - Interface for algorithms 22 - [ ] Inheritance, via Keyed Caesar 23 - [ ] Algorithms 24 - [ ] Caesar 25 - [ ] Keyed Caesar 26 - [ ] The other one 27 - [ ] More?... 28 - [ ] Command line menu 29 - [ ] Extend existing command line class, to use lambda's 30 - [ ] ... 31 32 # Ideas 33 34 - Use an interface to reference each of the encryption algorithms 35 - Make classes for each algorithm, it should contain: 36 - Methods for encryption and decryption 37 - Methods to set and get the key 38 - Attributes to store the key 39 - Make the keyed Caesar by inheriting from the Caesar class, and replacing the setter for the key