Как упростить код с использованием интерфейса? - C#
Формулировка задачи:
Подскажите, можно ли упростить приведенный код?
Интерфейс нужный, а сам класс можно менять.
Спасибо.
/// <summary>
/// нужный нам интерфейс
/// </summary>
interface ITest
{
public Object A;
public Object B;
public Object C;
}
/// <summary>
/// класс, реализующий интерфейс.
/// Но! Класс по сути является всего-навсего контейнером переданных в него объектов.
/// Он ничего не делает!
/// </summary>
class Test : ITest
{
public Object A { get; set; }
public Object B { get; set; }
public Object C { get; set; }
public Test(Object a, Object b, Object c)
{
A = a;
B = b;
C = c;
}
}Решение задачи: «Как упростить код с использованием интерфейса?»
textual
Листинг программы
public class Player
{
// ходы игрока
List<Move> playersMoves;
// последовательно все ходы игрока
Action FirstMove;
Action SecondMove;
Action ThirdMove;
public Player(List<Move> PlayerMoves,Action firstMove,Action secondMove,Action thirdMove)
{
FirstMove=firstMove;
SecondMove =secondMove;
ThirdMove=thirdMove;
playersMoves = PlayerMoves;
}
}
public class Base
{
List<Move> history;
public Player[] GetState()
{
Player[] res = new Player[5];
for(int i=0;i<5; i++)
{
Player p = res[i];
p = new Player(
history.Where(m => m.who == p).ToList(),
history.FirstOrDefault(m => m.who == p && m.when == Time.First).what,
history.FirstOrDefault(m => m.who == p && m.when == Time.Second).what,
history.FirstOrDefault(m => m.who == p && m.when == Time.Third).what
);
}
return res;
}
}