冗長なメソッドやオブジェクトのコピー、リファレンスやその他の不正なハッキングを使わずに、ベースクラスと派生クラス間でオブジェクトの作成ロジックを分割する方法は? これは例です。私は詳細を書く必要があります。私は詳細を書く必要があります。詳細。返されたオブジェクトの作成ロジックをC#で基底クラスと派生クラスの間でどのように分割するのですか?
public abstract class Base
{
protected int Property1;
protected int Property2;
public View GetView()
{
View view = new View();
view.Property1 = Property1.ToString();
view.Property2 = Property2.ToString();
return view;
}
}
public class Derived1 : Base
{
int Property3;
public override View GetView()
{
View1 view = new View1();
view.Property3 = Property3.ToString();
//return view;
//return base.GetView();
//return view UNION base.GetView(); ???
}
}
public class Derived2 : Base
{
int Property4;
public override View GetView()
{
View2 view = new View2();
view.Property4 = Property4.ToString();
//return ???
}
}
public abstract class View
{
public string Property1;
public string Property2;
}
public class View1 : View
{
public string Property3;
}
public class View2 : View
{
public string Property4;
}
ありがとうございます。
'View1'と' View2'は接続されていますか?たとえば、同じインタフェースを実装していますか? – nvoigt
"私は詳細を書く必要があります。詳細を書く必要があります。少ないカフェイン。あなたの例があまりにも曖昧であるため、あなたが達成しようとしていることを私は知らない。 –
@novigt Viewから派生したものです。必要に応じてインターフェイスIViewを簡単に実装できます。 – Feofilakt