Сообщение Наследование или фабрика ? от 18.02.2017 19:57
Изменено 18.02.2017 19:58 _NN_
Наследование или фабрика ?
В силу отсутствия глобальных псевдонимов типов в C# задался вопросом как лучше сделать.
1.
2.
class SomeGeneric<TA, TB>
{
public SomeGeneric(TA a, TB b) { .. }
}
1.
class SomeSpecific
{
public static SomeGeneric<X, Y> Create() { return new SomeGeneric<X,Y>(new X(), new Y()); }
}
2.
class SomeSpecific : SomeGeneric<X, Y>
{
public SomeSpecific() : base(new X(), new Y()) {}
}
Наследование или фабрика ?
В силу отсутствия глобальных псевдонимов типов в C# задался вопросом как лучше сделать.
1.
2.
У второго варианта удобнее использование, ведь X,Y будут скрыты от глаз, зато первый вариант не создает ненужного наследования.
class SomeGeneric<TA, TB>
{
public SomeGeneric(TA a, TB b) { .. }
}
1.
class SomeSpecific
{
public static SomeGeneric<X, Y> Create() { return new SomeGeneric<X,Y>(new X(), new Y()); }
}
2.
class SomeSpecific : SomeGeneric<X, Y>
{
public SomeSpecific() : base(new X(), new Y()) {}
}
У второго варианта удобнее использование, ведь X,Y будут скрыты от глаз, зато первый вариант не создает ненужного наследования.