2011-01-05 20 views
0

次のコードを考える:継承:メソッド

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

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

が、これは継承を使用する適切な方法ですか?私は、別のクラスに "Do"メソッドを置き、コンポジションを使用すると思います。私は、基本クラスのオブジェクトをアクセスもしなければならないとして、しかし、それは、カプセル化に違反:

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

答えて

0

そのようにうん、ここで良い=] 組成物は、おそらくカプセル化を壊していないだろうが、これは許容可能なように思える場合不快感の使用。

関連する問題