All ways are good, and there are more ways than what've been mentioned on this forum. What is most convenient for you is the best for you. If it's just a small plugin with several commands, declaring the commands in plugin.yml and handling them in onCommand is enough. Putting them in separate classes does not give any performance gain. Unless you need to dynamically declare commands, the plugin.yml + onCommand way is the most pragmatic.