第4章:工厂方法模式
定义:
工厂方法模式:定义一个用于创建对象的接口,但是让子类决定将哪一个类实例化。工厂方法模式让一个类的实例化延迟到其子类。
结构:
代码实现:
应用实例:
使用简单工厂方法模式,LoggerFactory中包含大量if-else if,职责过重
//日志记录器工厂
class LoggerFactory {
//静态工厂方法
public static Logger createLogger(String args) {
if (args.equalsIgnoreCase("db")) {
//连接数据库,代码省略
// 创建数据库日志记录器对象
Logger logger = new DatabaseLogger();
//初始化数据库日志记录器,代码省略
return logger;
} else if (args.equalsIgnoreCase("file")) {
//创建日志文件
// 创建文件日志记录器对象
Logger logger = new FileLogger();
//初始化文件日志记录器,代码省略
return logger;
} else {
return null;
}
}
}
改进后: