0

次のように Factory メソッドを実装しました。

 class A
{

}
class A1:A
{

}

class A2:A
{

}
static class Factory
{
    public static A GetInstance(int i)
    {
        if (i == 1)
            return new A1();
        else if (i == 2)
            return new A2();
        else
            return null;

    }
}

次のクラス メソッド f1() で Factory を使用したいと考えています。メソッド f1() は、その派生クラスから呼び出されます。次のアプローチを使用できます。

アプローチ 1:

class MyClass
{
    private A obj = null;
    public void f1()
    {
        obj = Factory.GetInstance(1);
    }

}

アプローチ 2:

class MyClass2
{
    protected  A obj { get; set; }
    protected void f1()
    {
        obj = Factory.GetInstance(1);
    }

}

どちらのアプローチが優れていますか? プロパティとメソッドを保護する必要がありますか? アプローチの長所と短所は何ですか?

4

1 に答える 1