Что лучше - полиморфизм или наследование как концепция для работы с библиотекой .net? - PullRequest
0 голосов
/ 30 августа 2010

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

Пример В моей библиотеке у меня есть функция CreateData, множество других функций и одна, давайте назовем ее функцией Main, которая использует множество функций в библиотеке, имеет понятныелогика и просто приятно получить некоторый результат, который вы хотите, осторожным быстрым способом.Единственное, что он тоже использует функцию CreateData.так что вы можете просто вызвать Main и получить некоторый результат для некоторой случайной \ предварительно сгенерированной данными создателя библиотеки, но когда вы захотите, не реализуя Main самостоятельно, просто измените логику создания данных, вам следует перезаписать функцию CreateData.

Так ли это нормально с точки зрения ООП, или мне следует переписать Main, используя полиморфизм?

Но если я начну использовать полиморфизм, мне, вероятно, придется использовать его длявсе 20-50 функций, которые я использую в main, которые теперь просто перезаписываются ...

1 Ответ

0 голосов
/ 30 августа 2010

Я бы сказал: «Ни один из вышеперечисленных - состав, как правило, лучший».

Полиморфизм подразумевает наследование.В общем, вы переопределяете виртуальные методы, когда настраиваете полиморфное поведение.

Похоже, что вы делаете, это Pattern Method Pattern .

IНастоятельно рекомендуется написать модульные тесты для вашей библиотеки (или фреймворка; термины часто взаимозаменяемы).Это заставит вас использовать свой собственный код с точки зрения разработчика клиента (технический термин «собачий корм»).Этот метод помогает находить болевые точки.

Я также рекомендовал бы прочитать Руководство по проектированию платформы: условные обозначения, идиомы и шаблоны для повторно используемых библиотек .NET (2-е издание) и запустить сопутствующий инструмент FxCop .Вы узнаете лучшие практики от экспертов.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...