Софтуерно Инженерство
Loading...
murkata86 avatar murkata86 10 Точки

[C#] OOP Advanced Exam

начиии.... аз съм мнго тъпо парче....

 

https://1drv.ms/u/s!AqYxxc0vshUCg24OCEVvPcdv0E3I

 

Защо не можах да си видя грешките по време на изпита!? Не мога да го тествам сега в джъджа, но тестовете дадени в условието минаха....  Супер много ме е яд, че заради едно недоглеждане не можах да направя нищо....  Беше за 2 минути работа.......................

Тагове:
0
C# OOP Basics
mbencheva avatar mbencheva 55 Точки

Да не отварям друга тема, ако някой иска да сподели решението си, ще се радвам да го разгледам

 

0
08/08/2016 01:18:36
msmilkoff avatar msmilkoff 344 Точки

Добавянето на стратегиите успях да го направя по-динамично, чрез рефлекшън. Малко е грозно, но поне работи, когато имаме консистентно именуване на атрибути и стратегии :)
<pastebin>

2
ArmenPotourlyan avatar ArmenPotourlyan 488 Точки

Не е грозно :))) Много се чудих вчера дали да не направя нещо подобно, но реших, че може би един бъдещ модел на боклук може да бъде използван от вече съществуваща стратегия. Като се прибрах ми дойде друга идея - още един атрибут върху стратегиите, който да указва имената на боклуците, които се асоциират със стратегиите:

[AssociateWith(ЕдиКакъвСиGarbage)]
[AssociateWith(ЕдиДругСиGarbage)]
public class ЕдиКакваСиСтратегия
 

2
08/08/2016 14:51:22
RoYaL avatar RoYaL SoftUni Team Trainer 6883 Точки

Ами то това не е ли същото? :) Пак ще трябва да отидеш да модифицираш стратегията, за да работи новият боклук :)

1
ArmenPotourlyan avatar ArmenPotourlyan 488 Точки

Да... Какъв е оптималният вариант?

0
08/08/2016 15:11:34
StaVykoV avatar StaVykoV 169 Точки

аз го направих да взима стратегията на място, а не с предварителен лоудър. Когато процесвам Waste му взимам анотейшъна от там с рефлекшън правя стратегия и я адвам в холдъра с тоя анотейшън. 

0
ArmenPotourlyan avatar ArmenPotourlyan 488 Точки

А какво мислите за това DisposableAttribute-ите да си имат свойство, което да указва стратегията към тях? И съответно да зарежда с рефлекшън всички стратегии към съответните атрибути :) Така хем си пишеш новия модел боклук и всичко сработва, хем няма нужда имената на боклуците и стратегиите да се припокриват до някаква степен.

2
stambi4a avatar stambi4a 126 Точки

Здравейте.

Поздрави на всички колеги които бяха на изпита и се потиха честно над задачата. Малко съм изненадан от advanced reflection нещата, като се има предвид, че и подготовката за изпита не беше перфектна. Пуснаха ни в дълбокото сякаш.

Отнoсно Disposal attribute мисля, че е въпрос на избор. Използвах атрибути на няколко места, като за стратегиите така както е по авторското решение, за garbage моделите с property. Разликата в рефлекшъна после е малка.

Между другото този command handler от авторското решение не е много strong cohesion, както и магическите числа от стратегиите би трябвало да са константи.

4
08/08/2016 16:09:34
val4o89 avatar val4o89 240 Точки

Малко е тъпо, че за атрибути имаше само една задача в домашните в целия курс, лично аз не успях да се упражня върху тях и да разбрера защо ми трябват, въпреки, че гледах различни лекции, може би е специфично, но трябва повече задачи със сигурност, че тая ЕДНА задача оставя в хората впечатлението, че това е нещо странично.

3
stambi4a avatar stambi4a 126 Точки

    Имаше и в юнит тестовете, там без тях не може.

    Ако питаш по - advanced developer защо прави нещо няма да получиш дълго обяснение защото толкова време го е правил, че за него абстракцията и имплементацията са едно и също. Та така и по лекциите, ако се чудиш защо много не се дълбае върху причините, може да получиш най-много референции към класовете на .net, много от които широко използват атрибути.

    Атрибутите са полезни, защото правят reflection по-лесен, в смисъл по-бърз, понеже стеснява търсенето на типове, методи, полета, пропъртита. Имат и описателни ползи, не като документация, а като допълнителна информация за обекта към който е прикрепен, но това пак се използва чрез reflection. Ето други ползи.

    Допълнително инфо: MSDN

   

2
val4o89 avatar val4o89 240 Точки

Да, за юнит тестовете ги ползваш, но не кастъм атрибути.

1
alexei.tcekov avatar alexei.tcekov 33 Точки

Здравейте ... и аз да покажа моето решение .... така както съм го предал ... приемам градивни критики :) ... https://github.com/alexeitcekov/school/tree/master/C%23/OOPAdvance/AdvanceOOPExam

    .... след като излязох от изпита се усетих, че командите в while-a  връщат стринг и можех да го направя с command pattern и рефлекшън ... 

0
09/08/2016 09:29:41