Вопрос

У меня вопрос по дизайну.Как можно теоретически подойти к этому при написании приложения, в котором есть несколько компонентов, которые имеют одни общие атрибуты и отличаются другими как с точки зрения графического интерфейса (формы Windows), так и с точки зрения серверной части?

Например, у меня есть приложение, в котором есть 4 разных типа продукта.Формы для ввода сведений о продукте имеют три разных поля.Пока что все просто: имейте базовый класс, а затем извлекайте из него четыре формы.Однако, скажем, два продукта имеют определенное поведение, ОДИНАКОВОЕ для них обоих.Конечно, я мог бы иметь интерфейс, определяющий методы, а затем эти две формы ввода продукта реализовали бы этот интерфейс, но поскольку интерфейс не обеспечивает реализации по умолчанию, не будет ли это пустой тратой?Поскольку мне пришлось бы предоставить реализацию в каждом классе, и если бы она была абсолютно одинаковой, это было бы повторением кода.

Конечно, я мог бы поместить этот метод в базовый класс и получить от него две формы.Если мои формы имеют более одного общего элемента и не имеют других элементов, какой был бы самый разумный и логичный способ представить это, не вырывая на себе волосы?

Нет правильного решения

Другие советы

Почему бы не создать два несвязанных класса непосредственно из вашего базового класса, а затем создать новый класс с общей функциональностью, производный от базового класса, а оставшиеся два класса наследовать от этого нового класса?

BaseClass
CommonClass : BaseClass
ClassA : BaseClass
ClassB : BaseClass
ClassC : CommonClass
ClassD : CommonClass

Один из способов добиться общего поведения в двух классах — это сделать так, чтобы эти два класса содержать такое поведение в качестве члена, а не наследование такое поведение:для форм это может означать определение «пользовательского элемента управления» (т.е.многоразовый набор общих элементов управления).

Трудно сказать без конкретного макета.Как правило, другая, часто более гибкая форма повторного использования — это композиция вместо наследования.Фактически, иерархия управления показывает, насколько сильной может быть композиция.Возможно, вы сможете разделить части своего пользовательского интерфейса на специальные элементы управления, которые будут собраны на основе конкретного макета продукта, который вам нужен.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top