0

派生クラスで基本クラス プロパティを使用したい。また、外部からプロパティ値を渡す必要があります。次の2つのアプローチが考えられます。

アプローチ 1:

class Mydata
{

}
class Converter1:Converter
{
    void Converter1(Mydata data1)
    {
        data = data1;
    }
    public void Convert()
    {
       // USING "data" here
    }
}

class Converter2 : Converter
{
    void Converter2(Mydata data2)
    {
        data = data1;
    }
    public void Convert()
    {

            //USING "data" here

    }
}

オブジェクトを作成するときは、次のように作成できます。

   Mydata data1 =new  Mydata()
   Mydata data2 =new  Mydata()
   Coverter cObj= Converter1(data1 )
   cObj.Convert()
   Coverter cObj1= Converter2(data2 )
   cObj1.Convert();   

アプローチ 2:

class Mydata
{

}
class Covnerter1:Converter
{
    public void Convert()
    {
        // USING "data" here
    }
}

class Converter2 : Converter
{

    public void Convert()
    {
         // USING "data" here

    }
}

オブジェクトを作成するときは、次のように作成し、基本クラスにプロパティ値を設定できます。

    Mydata data1 =new  Mydata()
   Mydata data2 =new  Mydata()
   Coverter cObj= Converter1()
   cObj.data = data1; 
   cObj.Convert()  
   Coverter cObj1= Converter2()
   cObj1.data =data2
    cObj1.Convert()

どちらのアプローチが優れていますか? または他のより良いアプローチはありますか?

4

1 に答える 1

1

「コンバーター」の奇妙さを無視して...

「より多くのコードを共有し、データをカプセル化する方が良い」という点では、多くの場合、基本クラスのプロパティを設定する必要がある場合は、基本クラスのコンストラクターを介して実行できます。

class Base
{  
    public MyData { get; private set; }
    public Base(MyData data)
    {
       MyData = data;
    }
}

class Derived : Base
{ 
    public Derived(MyData data):base(data)
    {}

    // Methods that use MyData here...
}
于 2013-08-29T08:01:42.013 に答える