@startuml 'https://plantuml.com/class-diagram namespace NaturallyColorModels { class CyanMagentaYellowKey class HueSaturationValue class RedGreenBlue } namespace ColorModels { abstract AbstractColorModel class CyanMagentaYellowKey class HueSaturationValue class RedGreenBlue CyanMagentaYellowKey --|> AbstractColorModel HueSaturationValue --|> AbstractColorModel RedGreenBlue --|> AbstractColorModel } NaturallyColorModels.CyanMagentaYellowKey o-- ColorModels.CyanMagentaYellowKey NaturallyColorModels.HueSaturationValue o-- ColorModels.HueSaturationValue NaturallyColorModels.RedGreenBlue o-- ColorModels.RedGreenBlue namespace Transformer { interface ColorModelTransformInterface { + toRedGreenBlue(): RedGreenBlue; + toCyanMagentaYellowKey(): CyanMagentaYellowKey; + toHueSaturationValue(): HueSaturationValue; } class CyanMagentaYellowKeyTransformer class HueSaturationValueTransformer class RedGreenBlueTransformer ColorModelTransformInterface <|-- CyanMagentaYellowKeyTransformer ColorModelTransformInterface <|-- HueSaturationValueTransformer ColorModelTransformInterface <|-- RedGreenBlueTransformer namespace Utilities { abstract AbstractHueSaturationValueToUtility class CyanMagentaYellowKeyToHueSaturationValue class HueSaturationValueToCyanMagentaYellowKey class HueSaturationValueToRedGreenBlue class RedGreenBlueToHueSaturationValue Transformer.Utilities.CyanMagentaYellowKeyToHueSaturationValue --|> Transformer.Utilities.AbstractHueSaturationValueToUtility Transformer.Utilities.HueSaturationValueToCyanMagentaYellowKey --|> Transformer.Utilities.AbstractHueSaturationValueToUtility Transformer.Utilities.HueSaturationValueToRedGreenBlue --|> Transformer.Utilities.AbstractHueSaturationValueToUtility Transformer.Utilities.RedGreenBlueToHueSaturationValue --|> Transformer.Utilities.AbstractHueSaturationValueToUtility } CyanMagentaYellowKeyTransformer o-- Transformer.Utilities.CyanMagentaYellowKeyToHueSaturationValue CyanMagentaYellowKeyTransformer o-- Transformer.Utilities.HueSaturationValueToRedGreenBlue HueSaturationValueTransformer o-- Transformer.Utilities.HueSaturationValueToRedGreenBlue HueSaturationValueTransformer o-- Transformer.Utilities.HueSaturationValueToCyanMagentaYellowKey RedGreenBlueTransformer o-- Transformer.Utilities.RedGreenBlueToHueSaturationValue RedGreenBlueTransformer o-- Transformer.Utilities.HueSaturationValueToCyanMagentaYellowKey } ColorModels.AbstractColorModel --o Transformer.ColorModelTransformInterface @enduml