常用设计模式——工厂方法模式

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/chenbetter1996/article/details/88359037

个人整合学习自

  1. 《Java设计模式》 刘伟 编著

工厂方法模式

  工厂方法模式是简单工厂模式的延续,它集成了简单工厂模式的优点,同时还弥补了简单工厂模式的不足。工厂方法模式是使用频率最高的设计模式之一。是很多开源框架和API类库的核心模式。如常见的日志记录工具SLF4J。


实现

  其实就是把工厂实现类分开,分为一个接口和一个实现类。更加满足开闭原则。
如下实例代码

  1. Logger: 日志记录器接口,充当抽象产品角色。
public interface Logger {
	public void write();
}
  1. DatabaseLogger: 数据库日志记录器,充当具体产品角色。
public class DatabaseLogger implements Logger {
	@Override 
	public void write() {
		System.out.println("打印数据库日志记录");
	}
}
  1. FileLogger: 文件日志记录器,充当具体产品角色。
public class FileLogger implements Logger {
	@Override 
	public void write() {
		System.out.println("打印文件日志记录");
	}
}
  1. LoggerFactory: 日志记录器工厂接口,充当抽象工厂角色。
public interface LoggerFactory {
	public Logger createLogger();  // 抽象工厂方法
}
  1. DatabaseLoggerFactory: 数据库日志记录器工程类,充当具体工厂角色
public class DatabaseLoggerFactory implements LoggerFactory {
	@Override
	public Logger createLogger() {
		Logger logger = new DatabaseLogger();
		return logger;
	}
}
  1. FileLoggerFactory: 文件日志记录器工程类,充当具体工厂角色
public class FileLoggerFactory implements LoggerFactory {
	@Override
	public Logger createLogger() {
		Logger logger = new FileLogger();
		return logger;
	}
}
  1. Client: 客户端测试类
public void Client {
	public static void main(String[] args) {
		// 创建一个文件工厂
		Factory factory = new FileLoggerFactory();
		// 使用工厂获取文件打印产品角色
		Logger logger = factory.createLogger();
		// 打印文件日志
		logger.write();
	}
}

猜你喜欢

转载自blog.csdn.net/chenbetter1996/article/details/88359037