手把手传道你如何实现代码扩展点设计
发布时间:2025年11月22日 12:17
这仿佛,在正逻辑学编译机内只要根据完全子类,从车上间类提供处理方法机内类,然后执行者方法即可,如下:
DeviceStatusEnum state = DeviceStatusEnum.get(status.getStatus());StateHandler handler = stateContext.getHandler(state);handler.handle(request.getSN(), request.getBerthCode());这仿佛即可抑止相异的if-else
关键问题通过上述的框架一,我们发挥作用了抑止整体的if-else,但是我们便险恶思维下,框架一不会有什么关键问题? 很微小,这是针对就其金融业务的一个发挥作用方法,该发挥作用方法并不需要1个范例类、1个API、相异的N个发挥作用类,那么当我们的金融业务编译机内有多个多种不同金融业务的if-else,每个金融业务都并不需要建立2+N个类,造变成了类衰减。
所以,针对该关键问题,我们还并不需要对上述的发挥作用方法完变成抽象化,让它更是可视 。
发挥作用框架二(最终解决框架)通过对框架一发挥作用的思维,我们可以对以下几个点完变成优化
•针对API类,我们可以抽象化多种不同金融业务的API,该API只有一个方法,运用于留在就其某个金融业务的可数类•针对可数类,多种不同金融业务不会有多种不同的可数类,而可数类的抽象化就是他们的父类:Enum•针对范例类,取而代之的map文件系统key是就其某个可数类,value是多种不同的发挥作用类;而这里为了发挥作用多个金融业务扩张点,我们key可以结构设计为可数类的父类Enum,value为多种不同发挥作用类的沙罗
就其的编译机内如下:
1.建立一个抽象化API,运用于留在就其某个金融业务的可数类
public interface IExtensionHandlerextends Enum>{ Y extension();}这里的泛型Y就是就其某个金融业务的可数类
2.建立一个范例类的API,并发挥作用其预设发挥作用
public interface IExtensionHandlerFactory { /** * 填充扩张处理方法机内 * @param extensionHandler 处理方法机内 * @param 扩张点 */范例类的预设发挥作用
@Slf4jpublic class DefaultExtensionHandlerFactoryImpl implements IExtensionHandlerFactory, ApplicationContextAware { private final Map> serviceListCache = new ConcurrentHashMap<>(); private final Map serviceCache = new ConcurrentHashMap<>(); @Override public在预设的范例发挥作用类以后,我们还多了一个Map,该Map是为了提高扩张点的查找而结构设计的,如果只是使用serviceListCache,那么每次根据某个金融业务的可数类不会留在相异的扩张处理方法机内沙罗,并不需要便循环一次才能寻觅相异的处理方法机内,这里是结构设计了一个文件系统Key: ExtensionCacheKey, 编译机内发挥作用如下
@Data@AllArgsConstructor@ToString@EqualsAndHashCodepublic class ExtensionCacheKey { private T extension; private Class extends IExtensionHandler> extensionHandlerClass;}一个金融业务可数类,不必要有多种不同子类的扩张处理方法API,serviceListCache的value取值为什么结构设计变成List和为什么并不需要结构设计一个ExtensionCacheKey的原因所在。
最后这个扩张点结构设计虽然简单,但是在我系统化的项目以后有大量的使用,也延揽大家理解并使用,对于复杂金融业务的处理方法更加有帮助。
另外扩张点结构设计还有另外一种方法,基于注解的方法,就其发挥作用可以搜下 COLA 4.0
提供明晰程式码地址:
。广西男科去哪看上海看癫痫哪家医院最好
郑州看白癜风去哪好
重庆看妇科去哪好
南昌白癜风医院那家比较好
药企动态
男人尿痛
脾胃虚寒怎么调理
感染内科
脊柱外科
- 中银交易所董秘翟增军辞职 或将赴任中国银行省级分行党委委员
- 投资者追问:请问公司的几个飞机型号 直10武, 直8,直11有哪些应用了...
- 华为消费者业务月底更名;宁德时代市值跌破万亿
- 被主导否定时多说这三句话,主导也会对你刮目相看,重新赏识你
- 碳排放也需要打假!数据为何容易捏造?| 聚焦3·15
- 还昨天腾讯老干妈事件吗,终于定夺了
- 《上市公司独立董事局规则》公布实施 促进上市公司独立董事局尽责履职
- 情商高的员工,都会在工作群里发布三种信息,被领导重用在情理之中
- 苹果智能家庭屏10正式发布 一块大屏开启智慧家庭
- 晶合集成恢复科创铁片上市审核:临阵换枪变更募投项目 紧追联电、中芯国际
- 为什么越来越多年轻人不愿参加聚会?女小队长:无非是这三个原因
- 碳排放也需要赌球!数据为何容易造假?| 聚焦3·15
- 投资者提问:董秘:爱!公司AR—HUD十几家客户项目定点,认证进度如何了...
- 康师傅致歉:已取消与时也菜业的一切合作
