Extract shared factory dispatch into ComponentFactory base class
All four name-dispatch factories repeated the same if/elif lazy-import pattern. Replace with a ComponentFactory base class holding a callable registry and a _lazy() helper for the common import-and-construct case. PlantFactory is an orchestrator, not a dispatcher, and is left as-is. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Tqxrk8uj4M3w3d3eXm3xK8
This commit is contained in:
@@ -1,11 +1,8 @@
|
||||
from components.factory import ComponentFactory, _lazy
|
||||
|
||||
|
||||
class TempSensorFactory:
|
||||
@staticmethod
|
||||
def create(name, *args, **kwargs):
|
||||
if "sim" in name:
|
||||
from components.sensor.tempSensorSim import TempSensorSim
|
||||
return TempSensorSim(*args, **kwargs)
|
||||
elif "31865" in name:
|
||||
from components.sensor.tempSensor_max31865 import TempSensor_max31865
|
||||
return TempSensor_max31865(*args, **kwargs)
|
||||
class TempSensorFactory(ComponentFactory):
|
||||
_registry = {
|
||||
"sim": _lazy("components.sensor.tempSensorSim", "TempSensorSim"),
|
||||
"31865": _lazy("components.sensor.tempSensor_max31865", "TempSensor_max31865"),
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user