「プログラム2-1」 public interface KeyValueWriter{ public void initialize(); public void write(String key, String value); public void complete(); } 「プログラム2-2」 public class ToTags implements KeyValueWriter{ public void initialize(){ System.out.println(""); } public void write(String key, String value){ System.out.println("" + value + ""); } public void complete(){ System.out.println(""); } } 「プログラム2-3」 public class KeyValueWriterAdapter implements KeyValueWriter{ public void initialize(){} public void write(String key, String value){}; public void complete(){} } 「プログラム2-4」 public class ToProperties extends KeyValueWriterAdapter{ public void write(String key, String value){ System.out.println(key + "=" + value); } } 「プログラム2-5」 public class Test2{ static String[][] pairs = { {"width", "200"}, {"height", "120"}, {"color", "blue"} }; public static void main(String[] args){ write(new ToProperties()); System.out.println("---------------"); write(new ToTags()); } private static void write(KeyValueWriter out){ out.initialize(); for(String[] pair: pairs){ out.write(pair[0], pair[1]); } out.complete(); } }