/**
 * {@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 interface Transport {
		public void deliver();
	}

	public static class Trank implements Transport {
		@Override
		public void deliver() {
			System.out.println("Trank []");
		}
	}

	public static class Ship implements Transport {
		@Override
		public void deliver() {
			System.out.println("Ship []");
		}
	}

	public static abstract class Logistics {
		public abstract Transport factoryTransport();
	}
	
	public static class Road extends Logistics {
		@Override
		public Transport factoryTransport() {
			return new Trank();
		}
	}

	public static class Sea extends Logistics {
		@Override
		public Transport factoryTransport() {
			return new Ship();
		}
	}

	public static void main(String args[]) {
		// Unit test - uso del design pattern: factory method
		Transport road = new Road().factoryTransport();

		road.deliver();
	}
}

Embed on website

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