/**
 * {@link <a href=
 * "https://[Log in to view URL]"
 * target= "_blank"></a>}
 * 
 * @author itammb ( Italia Massimiliano Buscati )
 * @version JDK 1.15
 *
 */

class Main {

	public static class Client {
		public Client(InterfaceClient convert) {
			this.convert = convert;
		}

		private InterfaceClient convert;

		public double readKcal() {
			return convert.convertKjToKcal();
		}

		public double readCarbo() {
			return convert.convertKcalToCarbo();
		}
	}

	public static interface InterfaceClient {
		public double convertKjToKcal();

		public double convertKcalToCarbo();
	}

	public static class Adapter implements InterfaceClient {

		public Adapter(Service service) {
			this.service = service;
		}

		private Service service;

		public double convertKjToKcal() {
			return service.totalKj() * 0.239006;
		}

		public double convertKcalToCarbo() {
			return service.totalKcal() / 4;
		}
	}

	public static class Service {
		public double totalKj() {
			return 100;
		}

		public double totalKcal() {
			return 100;
		}
	}
	
	public static void main(String args[]) {
		// Unit test - uso del design pattern: adapter
		Client client = new Client(new Adapter(new Service()));

		System.out.println(client.readKcal());
	}
}

Embed on website

To embed this project on your website, copy the following code and paste it into your website's HTML: