uni

Thing1's amazing uni repo
Log | Files | Refs | Submodules

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