2011-01-05 3 views
0

Учитывая следующий код:Наследование: методы

class BaseClass 
{ 
    protected void Do(var param) {}; 
} 

class DerivedClass 
{ 
    public void DoSomething() 
    { 
     var param = something; 
     Do(param); 
    } 
} 

Является ли это правильный способ использовать наследование? Я бы подумал, что я бы поместил метод «Do» в отдельный класс и использовал композицию. Тем не менее, это нарушило бы инкапсуляцию, как я бы Acces объект в базовом классе:

class DerivedClass 
{ 
    public void DoSomething() 
    { 
     var param = something; 
     base.GetObject().Do(param); 
    } 
} 

ответ

0

Да, что если хороший путь =] Композиция здесь, вероятно, не будет нарушать инкапсуляцию, но это кажется приемлемым использование инертности.

Смежные вопросы