Софтуерно Инженерство
Loading...
+ Нов въпрос
mihayloff14 avatar mihayloff14 845 Точки

[OOP] OOP Sample Exam- 01.Furniture - Material type enum?

Здравейте,

В момента се занимавам с примерния изпит по ООП - OOP Exam и по-конкретно с първата задача от изпита.

Разгледам скелета на задачата и забелязвам, че в нея присъства енумерация MaterialType, която би трябвало да служи за класа Furniture - property-то му Material. Но виждам, че в интерфейса за класа, въпросното property е от тип string, а в Engine-а на програмата са декларирани три константни стринга относно типа на материала, които отговарят на имената от енумерацията.

Та, въпросът ми е каква точно е идеята? В методите на Engine-а да подаваме като параметър за типа на материала string и да го превръщаме в енумерация въпреки че по този начин въпросното property в класа няма да е от тип стринг. 

Наистина съм озадачен и ще се радвам на малко прояснение. ^^

Тагове:
0
C# OOP Basics 22/02/2015 21:01:46
Valleri avatar Valleri 292 Точки

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

0
a_rusenov avatar a_rusenov 1103 Точки

Предполагам учудването ти идва от това, че материалът се вкарва от factory-то като енумерация, пък пропъртито на Furniture връща стринг? Това е така, защото имплементира интерфейса IFurniture и трябва да се съобрази с него.

Със сигурност е по-добре IFurniture да използва и той енумерацията, но по условие този интерфес дефинира string Material и ние нямаме право да го редактираме.

1
mihayloff14 avatar mihayloff14 845 Точки

Да реално се поогледах из кода, който ни беше даден и наистина property-тата подавани са си стрингове, а метода, за който споменах служи един вид като валидация на подадените параметри. Оправих се с проблема по следния начин:

GetMaterialType(materialType).ToString()

materialType е стринга, който е подаден. Метода връща енумерация, която превръщам в стринг и използвам по-нататък.

Благодаря за помощта. ^^

1