委派
委托者不自己处理任务,根据某种策略选择委托人代处理。比如上级分配任务
· spring security的ProviderManager::authenticate()应该属于委派,它会分别调用AuthenticationProvider实现类的support(),选择声称可 验证此Authentication的Provider,让其验证
classDiagram
class AuthenticationProvider {
<<interface>>
+support(Class clazz) boolean
+authenticate(Authentication authentication) void
}
class JwtAuthenticationProvider
JwtAuthenticationProvider ..|> AuthenticationProvider : 实现
class UsernamePasswordAuthenticationProvider
UsernamePasswordAuthenticationProvider ..|> AuthenticationProvider : 实现
class ProviderManager {
+authenticate(Authentication authentication) void
}
ProviderManager ..> JwtAuthenticationProvider : 局变
ProviderManager ..> UsernamePasswordAuthenticationProvider : 局变