java基础(1)-几种获取类的扩展方式

栏目: Java · 发布时间: 6年前

内容简介:在日常开发过程中经常需要获取类的扩展集。即获取类的子类集(抽象类),或者接口实现类。比如说状态模式中,状态构建类,策略模式中的,策略构造方式。本文介绍几种获取方式。以策略模式为例 定义了2种策略interface

摘要

在日常开发过程中经常需要获取类的扩展集。即获取类的子类集(抽象类),或者接口实现类。比如说状态模式中,状态构建类,策略模式中的,策略构造方式。本文介绍几种获取方式。

实现

以策略模式为例 定义了2种策略

interface Handle ,实现类 ApproveHandleRefuseHandle

方式1 Spring大法好

Spring为java web开发提供了很多便捷,这么刚需的需求,Spring当然可以搞定 ListableBeanFactory 扩展了FactoryBean,自然能够获取bean的定义,所以可以从ApplicationContext获取类的扩展类

方式2 还是Spring

Spring提供了很多的扩展,允许我们在初始化bean之前,之后做一些自定义逻辑。当然也可以在Spring装配整个过程完成后做一些注入的逻辑

方式3 能不能不用Spring

离了Spring还能不能活,当然可以了。jdk本身提供了扩展支持 ServiceLoader 类。

  1. META-INF/services配置类

  2. ServiceLoader.load

总结

这边是以接口类来介绍的,对于接口也同样适用。完整代码见github

关注公众号【方丈的寺院】,第一时间收到文章的更新,与方丈一起开始技术修行之路

java基础(1)-几种获取类的扩展方式


以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网

查看所有标签

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

Text Processing in Python

Text Processing in Python

David Mertz / Addison-Wesley Professional / 2003-6-12 / USD 54.99

Text Processing in Python describes techniques for manipulation of text using the Python programming language. At the broadest level, text processing is simply taking textual information and doing som......一起来看看 《Text Processing in Python》 这本书的介绍吧!

HTML 压缩/解压工具
HTML 压缩/解压工具

在线压缩/解压 HTML 代码

CSS 压缩/解压工具
CSS 压缩/解压工具

在线压缩/解压 CSS 代码

HEX HSV 转换工具
HEX HSV 转换工具

HEX HSV 互换工具