工厂方法模式:定义一个创建对象的接口,让子类决定实例化哪一个 类,工厂方法使一个类的实例化延迟到创建器的子类中去,方便我们随时根据需求进行扩展。
定义一个功能实现的接口
public interface Inter {
boolean method(String something);
}
定义一个抽象的创建器,可以加n多功能让子类复用
/**
* Created by lenovo on 2018/3/18.
* 抽象父类提供工厂方法 子类继承实现
*/
public abstract class InterImpl {
public abstract Inter factoryMethod();
public boolean method(String sth) {
Inter inter = factoryMethod();
return inter.method(sth);
}
}
子类实现功能接口进行各种操作
public class ImplA implements Inter {
@Override
public boolean method(String something) {
//to do something
return false;
}
}
创建子类对象,可根据需要创建多个
public class Impl extends InterImpl {
@Override
public Inter factoryMethod() {
return new ImplA();
}
}
使用:
@Test
public void test() {
InterImpl interImpl = new Impl();//此处根据不同的功能创建需要的子类对象
interImpl.method("to do something");
}