使用plantUML绘制类图 --- spi

文章目录

JDK SPI

在这里插入图片描述

@startuml

note top of ServiceLoader
  
end note
class ServiceLoader implements Iterable{
	- String PREFIX'META-INF/services/'
	- Class service
	- ClassLoader loader
	- LinkedHashMap<String,S> providers
	- LazyIterator lookupIterator
	- ServiceLoader(Class<?> svc, ClassLoader cl)
	+ <?> ServiceLoader<?> load(Class<?> service)
	+ <?> ServiceLoader<?> load(Class<?> service,ClassLoader loader)
	- Iterator<String> parse(Class<?> service, URL u)
	- int parseLine(Class<?> service, URL u, BufferedReader r, int lc,List<String> names)
}

ServiceLoader +-- LazyIterator
note top of LazyIterator
  核心方法: S next() && boolean hasNextService()
  nextService() 中调用 providers.put(cn, p)

end note
class LazyIterator implements Iterable{
	# Class<?> service
    # ClassLoader loader
    # Enumeration<URL> configs
    # Iterator<String> pending
    # String nextName
	+ ? next()
	- ? nextService()
	+ boolean hasNext()
	- boolean hasNextService()
}

interface Iterable{}
@enduml
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值