none
ProviderBase RRS feed

  • Вопрос

  • Добрый вечер!

    Вопрос по архитектуре.

    Я использую модель провайдеров на основе ProviderBase. Примерно как здесь: http://dotnetslackers.com/articles/designpatterns/HowToWriteAProviderModel.aspx

    public abstract class DataProvider : ProviderBase

    public class SqlDataProvider : DataProvider

    public static class DataProviderManager

    с методом Initialize (типа Singleton, как я понимаю)

    Так вот, некоторые функции, например валидации реализованны в  SqlDataProvider, соответственно при добавлении нового поставщика, все эти функции продублируются. Как бы все повторяющиеся методы вынести в одно место?

    Я думаю, что правильнее  всего вынести их в DataProvider и потом обращаться к ним Base.Метод,

    но тогда этот класс не будет абстрактным, а все реализации, которые мне встречались основанны на абстрактном классе. Или есть ещё какое-нибудь решение?

     

     

     

    1 февраля 2011 г. 15:55

Ответы

  • Класс не станет не-абстрактным, если вынести в него повторяющиеся методы. В абстрактном классе могут быть обычные не-абстрактные методы. 
    My blog
    • Помечено в качестве ответа BrusLi 1 февраля 2011 г. 17:15
    1 февраля 2011 г. 16:57

Все ответы

  • Класс не станет не-абстрактным, если вынести в него повторяющиеся методы. В абстрактном классе могут быть обычные не-абстрактные методы. 
    My blog
    • Помечено в качестве ответа BrusLi 1 февраля 2011 г. 17:15
    1 февраля 2011 г. 16:57
  • Класс не станет не-абстрактным, если вынести в него повторяющиеся методы. В абстрактном классе могут быть обычные не-абстрактные методы. 
    My blog
    Да, я уже попробовал, работает. Спасибо.

     

    1 февраля 2011 г. 17:15