У меня вопрос дизайна. При написании приложения, в котором есть несколько компонентов, которые разделяют некоторые атрибуты, и отличаются друг от друга как с точки зрения графического интерфейса (оконных форм), так и с обратной стороны, как теоретически можно подойти к этому?Интерфейсы, наследование и формы окон в C#
Например, у меня есть приложение, в котором у меня есть 4 разных типа продукта. Формы для ввода сведений о продукте все разделяют 3 разных поля. До сих пор простой - иметь базовый класс, а затем выводить из этого базового класса 4 формы. Однако, скажем, у 2 продуктов есть определенное поведение, которое является ТОЛЬКО для обоих из них. Конечно, у меня мог бы быть интерфейс, который определяет методы, а затем эти две формы ввода продукта реализуют этот интерфейс, но поскольку интерфейс не обеспечивает реализацию по умолчанию, разве это не было бы отходом от этого? Поскольку я должен был бы обеспечить реализацию в каждом классе, и если бы он был точно таким же, это было бы повторением кода.
Я мог бы, конечно, поместить этот метод в базовый класс и получить из него 2 формы. Если мои формы разделяют более одного общего элемента и не разделяют другие элементы, то какой был бы самый безопасный, самый логичный способ представить это без необходимости вырывать мои волосы?
Разве это не означает повторение? – sarsnake
Это не копирование и вставка; он говорит, что обе формы включают в себя, как и элемент данных, экземпляр класса MyUserControlWithABunchOfCommonFunctionality. – ChrisW