.. ot-exercise:: cxx.exercises.design_patterns.solutions.abstract_factory :dependencies: cxx.exercises.design_patterns.abstract_factory .. include:: Solution: Abstract Factory ========================== .. contents:: :local: ``I2CSensorFactory`` Abstract Factory ------------------------------------- .. literalinclude:: /trainings/material/soup/cxx-code/design-patterns-abstract-factory/sensors/sensor-i2c-factory.h :caption: :download:`/trainings/material/soup/cxx-code/design-patterns-abstract-factory/sensors/sensor-i2c-factory.h` :language: c++ Concrete Factory Implementations -------------------------------- ``I2CSensorFactory_Vendor1`` ............................ .. literalinclude:: /trainings/material/soup/cxx-code/design-patterns-abstract-factory/sensors/sensor-i2c-factory-vendor1.h :caption: :download:`/trainings/material/soup/cxx-code/design-patterns-abstract-factory/sensors/sensor-i2c-factory-vendor1.h` :language: c++ .. literalinclude:: /trainings/material/soup/cxx-code/design-patterns-abstract-factory/sensors/sensor-i2c-factory-vendor1.cpp :caption: :download:`/trainings/material/soup/cxx-code/design-patterns-abstract-factory/sensors/sensor-i2c-factory-vendor1.cpp` :language: c++ ``I2CSensorFactory_Vendor1`` ............................ .. literalinclude:: /trainings/material/soup/cxx-code/design-patterns-abstract-factory/sensors/sensor-i2c-factory-vendor2.h :caption: :download:`/trainings/material/soup/cxx-code/design-patterns-abstract-factory/sensors/sensor-i2c-factory-vendor2.h` :language: c++ .. literalinclude:: /trainings/material/soup/cxx-code/design-patterns-abstract-factory/sensors/sensor-i2c-factory-vendor2.cpp :caption: :download:`/trainings/material/soup/cxx-code/design-patterns-abstract-factory/sensors/sensor-i2c-factory-vendor2.cpp` :language: c++