Прототип үлгісін қолданыңыз немесе жоқ

Менде сұрақ бар. Мен аз өнімдерді жасау керек. Енді 7 түрлі өнім түрін айтуға болады. Кейбіреулері басқалардың субтептері болып табылады, мысалы:

Cars
 - Vans
   - petrol
   - diesel
 - City
 - Hatchback
 - Saloon
 - Estate
   - petrol
   - diesel

Қазір дәл менің пікірімше, менің барлық қала, хэтчбек және седан автокөліктері гибридті/газдық болып табылады, және мен бензин мен дизельді сатпайтын боламын. Дегенмен болашақта болашақта бензин мен дизельді автокөліктерді сатып алу мүмкіндігім бар, бірақ бұл менің 20+ типтегі өнімім сияқты емес. Егер баратын болса, менде тағы 2-3 түр бар.

From what I understand Prototype Pattern may be good one here for I will be able to avoid duplication between estate->petrol and van->petrol ... but then again Van cars will have different characteristics than say city car e.g. maximum loading dimensions.

Мен жобалау үлгілері туралы көп оқыдым және белгілі бір нәрсе, ол сізге қажет болмаған жағдайда, үлгіні қолдануға болмайды. Енді мәселе - маған керек пе?

Рахмет!

3

2 жауаптар

Әрбір көлік түрі әртүрлі мінез-құлықты талап етеді ме? Жанармай ванты дизельдік вагоннан өзгешеленеді ме? Седанда behave мінезден ерекшеленеді?

Егер мен дұрыс түсінсем, сізге осындай нәрсе керек

public enum FuelType
{
     Petrol,
     Diesel
}

public class Car
{
   public string Name {get;set;}
   public FuelType Fuel {get;set;}
}

public class Van:Car { } 
public class CityCar:Car { }

Егер Ванның сипаттамасы автомобильге қарағанда әртүрлі мәндер болса, сізде субклассы қажет емес, тек сипат мәнін өзгерту керек. Мысалы, Ван басқа қасиеттерге ие болуға немесе субклассацияға құқығы бар әдістерді әртүрлі іске асыруға тиіс.

1
қосылды

Декораторлық үлгіні қолдану, ең алдымен, нақты объектілердің функционалдығын және/немесе сипаттамаларын кеңейту үшін қолдануға болатын ең жақсы алға жылжыту болып табылады.

Here is some light reading: Head First Design Patterns - CH3 pdf

FYI, ерлі-зайыптылар сіз таңдаған тілге қарамастан, дизайн үлгілерін үйренуге және сілтеме жасауға тиіс:

1) Head First Design Patterns

2) Patterns for Enterprise Application Architecture

3) Design Patterns: Elements of Reusable Object-Oriented Software

Және сайттар:

1) DoFactory

2) StackOverflow Design Patterns Newbie

Бірнеше адам бар, мен оларды қазып алуға тура келеді.

1
қосылды
Жауап бергеніңіз үшін рақмет, бірақ мен объектінің функционалдығын кеңейтуді қаламаймын, себебі ол барлық жұмыс уақытында әбден белгіленеді, бірақ сабақтарды тікелей мұраға қарағанда басқаша болатындай етіп модельдеуді қалаймын.
қосылды автор RandomWhiteTrash, көзі
Қарамастан, мен бұл жауапты қабылдаймын, ол құнды ресурстарға жақсы сілтеме бар :)
қосылды автор RandomWhiteTrash, көзі