接口是实现多重继承的途径,而生成遵循某个接口的对象的典型方式就是工厂方法设计模式。这与直接调用构造器不同,我们在工厂对象上调用的是创建方法,而该工厂对象将生成接口的某个实现的对象。
代码:
interface Cycle { void name(); } interface CycleFactory { Cycle getCycle(); } class Unicycle implements Cycle { @Override public void name() { // TODO Auto-generated method stub System.out.println("Unicycle!"); } } class UnicycleFactory implements CycleFactory { @Override public Cycle getCycle() { // TODO Auto-generated method stub return new Unicycle(); } } class Bicycle implements Cycle { @Override public void name() { // TODO Auto-generated method stub System.out.println("Bicycle!"); } } class BicycleFactory implements CycleFactory { @Override public Cycle getCycle() { // TODO Auto-generated method stub return new Bicycle(); } } class Tricycle implements Cycle { @Override public void name() { // TODO Auto-generated method stub System.out.println("Tricycle!"); } } class TricycleFactory implements CycleFactory { @Override public Cycle getCycle() { // TODO Auto-generated method stub return new Tricycle(); } } public class Cycles { public static void getCycles(CycleFactory factory) { Cycle c = factory.getCycle(); c.name(); } public static void main(String[] args) { getCycles(new UnicycleFactory()); getCycles(new BicycleFactory()); getCycles(new TricycleFactory()); } }
通过这种方式,我们就可以创建不同的自行车来复用这段代码。
来自 ----- Thinking For Java.