package com.kongjs.design_pattern.factory_pattern.simple_factory_pattern;
public class AppFactory {
public static <T extends App> T createApp(Class<T> c) {
App app = null;
try {
app = (App)Class.forName(c.getName()).newInstance();
} catch (IllegalAccessException | ClassNotFoundException | InstantiationException e) {
e.printStackTrace();
}
return (T)app;
}
}
public class Main {
public static void main(String[] args) {
App app = createApp(AppImpl.class);
app.say();
}
}
@FunctionalInterface
public interface App {
void say();
}
public class AppImpl implements App {
@Override
public void say() {
System.out.println("产品");
}
}