С моей точки зрения, частичные классы немного нахмурены профессиональными разработчиками, но я столкнулся с проблемой;Частичный класс или «цепное наследование»
Я выполнил реализацию элемента управления RichTextBox, который использует вызовы user32.dll для более быстрого редактирования больших текстов. Это приводит к довольно большому количеству кода. Затем я добавил контрольные возможности проверки орфографии, это было сделано в другом классе, наследующем элемент управления RichTextBox. Это также составляет немного кода.
Эти две функции довольно разные, но я бы хотел, чтобы они были объединены, чтобы я мог удалить один элемент управления в своей форме, который имеет как возможности быстрого редактирования, так и встроенную проверку орфографии. Я чувствую, что просто добавление формы кода одного класса к другому приведет к слишком большому кодовому файлу, тем более что есть две очень разные области функциональности, поэтому мне, похоже, нужен другой подход.
Теперь на мой вопрос; Чтобы объединить эти два класса, я должен заставить проверку орфографии RichTextBox наследовать от быстрого редактирования, который, в свою очередь, наследует RichTextBox? Или я должен сделать две частичные части одного класса и тем самым сделать их более «равными», так сказать?
Это больше вопрос принципов OO и упражнений с моей стороны, чем я, пытающихся изобрести колесо, я знаю, что есть много хороших инструментов для редактирования текста. Но для меня это просто хобби, и я просто хочу знать, как это решение будет решать профессионал.
Спасибо!
Мое использование (и понимание) интерфейсов очень ограничено, но разве этот подход не заставит меня повторять код FastEditTextBox в SpellCheckingTextBox наоборот? –
Я думаю, что вы отбросите общие вызовы и реализуете IExtensibleRichTextBox как для класса проверки орфографии, так и для быстрого класса редактирования. Как предполагает Габриэль, это позволит вам реализовать узор декоратора. Затем вы могли бы определить быстрое, проверенное заклинание или быстрое заклинание, в зависимости от ваших потребностей. Для получения большого обзора рисунка декоратора просмотрите свободную главу из книги O'reilly, шаблоны Head First Design: http://oreilly.com/catalog/hfdesignpat/chapter/ch03.pdf –