Permalänk
Medlem

Frågor hjälpklass OO

Hej! Anledningen till att använda en hjälpklass i OO istället för att bara skapa en metod, är det för att hålla samman logik s.a.s?

Visa signatur

Chassi: Fractal Design Define C || Processor: Intel i7-8700K || Grafikkort: ASUS GeForce GTX 1080Ti ROG Strix Gaming || Moderkort: Gigabyte Z370 AORUS ULTRA WIFI || Minne: Corsair Vengeance LPX DDR4 3000MHz 32 Gb || Lagring: Samsung 860 EVO 1TB SSD || PSU: Seasonic Focus+ 850W 85+ GOLD PSU || Skärm:Samsung Odyssey G9 || Windows 10

Permalänk
Medlem

Det är svårt att ge en konkret svar, eftersom du har gett väldigt lite information att gå ifrån. Men överlag kan man säga att: hjälpklasser gör att du kan återvinna och använda kod som en del av flera olika objekter. Att bara satsa på arv kan leda till väldigt komplex kod som är svår att ändra och/eller utöka senare.

Sen finns det också en del principer inom OOP såsom SOC (seperation of concerns) som dikterar att "Each object should only be responsible for one thing. I.e it should have one, and only one, reason to change."

Permalänk
Medlem

En typ av klasser tenderar att vara static-deklarerade, dvs enbart innehålla rena funktioner. Många språk (C#, Java) tvingar ju fram användandet av klasser som behållare av funktioner. Ett exempel skulle kunna vara hantering av endianness.

En annan typ av klass kan även de vara statiska (sakna medlemsvariabler), men ha sidoeffekter. Typ loggningsklasser. Man kan förstås även tänka sig loggningsklasser som behöver instansieras, speciellt om man vill ägna sig åt dependency injection.

Är klasserna ovan ”hjälpklasser”? Oklart för mig, men de är definitivt av annat slag än klasser som bär domändata och domänlogik.

Oavsett så är, som ovan påpekat, OO ett verktyg för att åstadkomma återanvändbarhet av datainkapsling och/eller logik. Hur verktyget ”ska” användas kan man debattera i oändlighet.