C# OOP Demo Exam - 07 December 2019
https://judge.softuni.bg/Contests/Practice/Index/1968#0
Много ме затруднява частта с Generic Repository (страница 3).
Не разбирам...
Child Classes да ги правя да наследяват IRepository и да им сложа после constraints на всички child класове
или
да направя базов клас Repository който наследява IRepository и който ще бъде наследен от child класовете.
И ако е второто, как и къде да направя constaints и как да го наследя този клас - въобще голяма каша стана...
И този метод ме тормози най-много:
T GetByName(string name)
Returns an entity with that name.
Т.е. ще търся с пропърти Name. Но дали това се отнася за Motorcycle? Там няма Name, но има Model.
Моля, ако някой се е преборил с тази задача, да качи едно решение!
s.boyadjiev всяко репозитори го заместваш с интерфейса му...и на мен не ми беше много ясно но след много опити в judge го уцелих.. пускам ти малко код да се ориентираш...ако ти трябва цяло решение пиши
public class MotorcycleRepository : Repository<IMotorcycle>
{
private IList<IMotorcycle> motorcycles;
public MotorcycleRepository()
{
this.motorcycles = new List<IMotorcycle>();
}
public override void Add(IMotorcycle model)
{
this.motorcycles.Add(model);
}
public override IReadOnlyCollection<IMotorcycle> GetAll()
{
return this.motorcycles.ToList().AsReadOnly();
}
public override IMotorcycle GetByName(string name)
{
IMotorcycle cycle = this.motorcycles.FirstOrDefault(x => x.Model == name);
return cycle;
}
public override bool Remove(IMotorcycle model)
{
return this.motorcycles.Remove(model);
}
}
Т.е. прави се йерархия от интерфейси, които наследяват IRepository, и след това всеки клас имплементира неговото си?!
Не виждам никакъв смисъл в това(не казвам, че няма). Ако задачата е пусната на изпит с това(некоригирано) условие, не завиждам на участниците на изпита!
Благодаря за отговора!
Поздрави!