DevicInterfaceListCommand
DeviceService=get(DeviceService.class)
DriverService=get(DriverService.class)
通过DeviceService获得对应的Device,------------------------->通过DeviceStore来获得
对每个Device创建DriverHandler-------------------------------- >driverService.createHandler()[实际进入DriverManager]
通过deviceId获得Device(从store获得)
通过device获得driverName
通过driverName获得driver(DriverManager里的map中得到)
通过driver和driverId创建DefaultDriverDate
得到handler< ---------------------------------------通过DefaultDriverDate初始化DefaultDriverHandle
通过DriverHandler来获得InterfaceConfig
这一handlervehaviour的具体实现(例如:
InterfaceConfigJuniperIosImpl)------------------------------------->DefaultDriverHandler
使用里面的DriverData里的driver,将需要被实现的behavior接口类作为参 数,找到这个接口的具体实现
DefalutDriver
createBehavious(handler.data(),handler,behaviourclass)其作用就是 把driver里的behavious里存的具体的实现类返回给请求者。
根据返回的类进行对应的操作<--------------------------------------------
可以看出handler的具体作用就是为了找到具体的实现类。如果我写,可能直接就去driver里面找它对应的behaviours了。但是如果加上了一个handler以后,就等于把这个创建behavior的动作封装了。