Below is an example of the MessageEncoder interface and the SubstitutionCipher class in Java.
// MessageEncoder.java
public interface MessageEncoder {
String encode(String plainText);
}
// SubstitutionCipher.java
public class SubstitutionCipher implements MessageEncoder {
private int shift;
// Constructor
public SubstitutionCipher(int shift) {
this.shift = shift;
}
// Implementation of the encode method
Override
public String encode(String plainText) {
StringBuilder encodedText = new StringBuilder();
for (int i = 0; i < plainText.length(); i++) {
char originalChar = plainText.charAt(i);