Информация об изменениях

Сообщение Наследование или фабрика ? от 18.02.2017 19:57

Изменено 18.02.2017 19:58 _NN_

Наследование или фабрика ?
В силу отсутствия глобальных псевдонимов типов в C# задался вопросом как лучше сделать.

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# задался вопросом как лучше сделать.

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 будут скрыты от глаз, зато первый вариант не создает ненужного наследования.