public interface FileReader { String fileRead(); }
class ModImpl implements FileReader { @Override public String fileRead() { return "[File Reading]"; } }
abstract class ModInventory implements FileReader { private FileReader fileReader;
public ModInventory(FileReader fileReader) { this.fileReader = fileReader; }
@Override public String fileRead() { return fileReader.fileRead(); } }
class Logging extends ModInventory { public Logging(FileReader fileReader) { super(fileReader); }
@Override public String fileRead() { var log = super.fileRead(); return log + " + [log mod]"; } }
class Encryption extends ModInventory { public Encryption(FileReader fileReader) { super(fileReader); }
@Override public String fileRead() { var encrypt = super.fileRead(); return encrypt + " + [encryption mod]"; } }
class AppUI { public static void main(String[] args) { var encrypt = new Encryption(new Logging(new ModImpl())); System.out.println(encrypt.fileRead()); } }
첫댓글 good job