Это более широкий вопрос, чем мой предыдущий , но связанный.
Я хочу реализовать в Ruby устаревшие криптосистемы, такие как ADFGVX , VIC cipher и другие, в основном для развлечения. Эти криптосистемы построены на основе более общих систем, таких как замещение (моноалфавитный, например, Цезарь, или полиалфавитный, как Вигенере) и транспонирование (простой, двойной). Мой вопрос на самом деле, как бы вы создали иерархию классов для обработки как криптосистем, так и ключей.
Что-то вроде Vigenere
Прямо сейчас, у меня есть очень простой проектный документ (я сказал basic ), и пока я думаю об этом, я не могу найти удовлетворительный способ для этого, поэтому Я прихожу сюда за вашей мудростью.
Реализация будет в Ruby, но если дизайн не должен использовать множественное наследование, речь идет не о самом Ruby.
Подтверждение концепции (еще не работоспособно и, возможно, неправильно) здесь в Mercurial.