A lot of discussion has been made over their use but I just want to know the generally accepted practice.
I have written a dictionary class, it takes commands their methods as strings and a class, then maps the strings to the methods of the class.
I anticipate that in the future, either myself or others may wish to use this to create other dictionaries. Therefore I wish to make it as versatile as possible.
Usage:
Should I use abstraction and provide a blank interface for others to abstract?
Should I use an interface with a class, leaving abstraction to others?
Naming:
Should I prefix interfaces with I and abstract classes with Abstract or A?
IDictionary
AbstractCommandDictionary
CommandDictionary
What I have tried:
Currently have the interface/class design