策略模式源码

This commit is contained in:
2020-03-05 10:41:46 +08:00
parent 6c37bbad76
commit baa04be096

View File

@@ -1,10 +1,30 @@
package top.fjy8018.designpattern.pattern.behavior.strategy;
import org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory;
import org.springframework.beans.factory.support.CglibSubclassingInstantiationStrategy;
import org.springframework.beans.factory.support.SimpleInstantiationStrategy;
import org.springframework.core.io.FileSystemResource;
import org.springframework.core.io.PathResource;
import java.util.Arrays;
import java.util.Comparator;
import java.util.Map;
import java.util.concurrent.ConcurrentHashMap;
/**
* 促销策略工厂
* <p>
* {@link java.util.Comparator} 比较器,类似于抽象策略,有大量实现类,所有具体策略都要实现定义好的接口方法
* 例如 {@link com.google.common.collect.ExplicitOrdering}
* 应用层可以逐级传递比较器 {@link Arrays#sort(Object[], Comparator)}
* {@link java.util.TreeMap#compare(Object, Object)} 利用内部的比较器处理
* <p>
* Spring资源策略抽象 {@link org.springframework.core.io.Resource}
* 提供大量策略实现 {@link PathResource} {@link FileSystemResource}
* <p>
* {@link org.springframework.beans.factory.support.InstantiationStrategy} 初始化策略接口
* 初始化具体策略实现 {@link SimpleInstantiationStrategy} {@link CglibSubclassingInstantiationStrategy}
* 初始化策略在 {@link AbstractAutowireCapableBeanFactory} 中被使用
*
* @author F嘉阳
* @date 2020/3/4 16:09