Предположим, мы хотим создать кнопку и текстовую область.
Мы можем создать их для Windows или Mac.
Как я понял, есть два оператора switch или if, один для выбора нужной фабрики, а другой для выбора нужного продукта.
Но если я хочу добавить фабрику Linux и продукт текстового поля, должен ли я отредактировать код и добавить эту третью опцию в операторы if или switch?
Не нарушает ли это принцип открытия/закрытия?