工厂模式:
若对象的创建过程过于繁琐或庞大,或该类有可能进行同类型扩展,则建议将类的创建单纯放在一个类里进行,这个类称为工厂。
简单工厂类图
/**
*
* @ClassName: IHelper
* @Description: 产品接口
* @author 雨ゆこ
* @date 2018年4月22日
* @version yuko1.0
*/
public interface IHelper {
void open();
void close();
void operation();
}
/**
*
* @ClassName: IFactory
* @Description: 工厂接口
* @author 雨ゆこ
* @date 2018年4月22日
* @version yuko1.0
*/
public interface IFactory {
IHelper create(Class c);
}
/**
*
* @ClassName: SqlHelper
* @Description: 产品实现类
* @author 雨ゆこ
* @date 2018年4月22日
* @version yuko1.0
*/
public class SqlHelper implements IHelper{
public void open() {
System.out.println("sql打开");
}
public void close() {
System.out.println("sql关闭");
}
public void operation() {
System.out.println("sql操作");
}
}
/**
*
* @ClassName: OracleHelper
* @Description: 产品实现类
* @author 雨ゆこ
* @date 2018年4月22日
* @version yuko1.0
*/
public class OracleHelper implements IHelper{
public void open() {
System.out.println("oracle 打开");
}
public void close() {
System.out.println("oracle 关闭");
}
public void operation() {
System.out.println("oracle 操作");
}
}
/**
*
* @ClassName: Factory
* @Description: 工厂实现类
* @author 雨ゆこ
* @date 2018年4月22日
* @version yuko1.0
*/
public class Factory implements IFactory{
public IHelper create(Class c) {
IHelper ih = null ;
if(c.getClass() == SqlHelper.class){
ih = new SqlHelper();
} else if(c.getClass() == OracleHelper.class){
ih = new OracleHelper();
}
return ih;
}
}