Hallo,

Ik ben even een klein beetje in de war. Ik heb al eerder op het forum gevraagd wanneer je nu een static class gebruikt. Hier werd destijds (door Wouter) op geantwoord dat een static class eigenlijk een verzameling van functies is.

Onlangs kwam ik via Google iemand tegen die schreef dat je een static class gebruikt als je ergens maar 1 instance van wilt hebben (je gaat dus geen nieuwe objecten aanmaken).

Op deze pagina staat het volgende geschreven over een object:


Real world objects shares 2 main characteristics, state and behavior. Human have state (name, age) and behavior (running, sleeping). Car have state (current speed, current gear) and behavior (applying brake, changing gear). Software objects are conceptually similar to real-world objects: they too consist of state and related behavior. An object stores its state in fields and exposes its behavior through methods.

Nu vraag ik me dus af... mijn framework heeft een Processor. Je gebruikt maar 1 Processor (je maakt niet meerdere Processor objecten aan). Is de Processor nu een object of een statische class? Omdat je niet meerdere objecten aanmaakt zou ik zeggen, het is een statische class. Van "buitenaf" kun je uitsluitend een "execute" opdracht geven aan de Processor. Je zou dus kunnen zeggen dat de Processor geen behavior heeft. Je kunt er (van buitenaf) eigenlijk niks mee. Intern daarentegen heeft de Processor wel behavior zou je denken omdat hij bepaalde processen aanstuurt, maar als je daar dan weer over nadenkt, is dat niet meer dan een uitwerking van de "execute" opdracht.

Nu is mijn vraag dus... is een Processor inderdaad een statische class? Is die conclusie juist?
Probeer zelf na te denken wat het handigst zou zijn. Als je weet wat een static (function) daadwerkelijk doet en wat de mogelijkheden zijn met objecten, heb je de mogelijkheden bij de hand.

Ikzelf gebruik het voor factory's en voor het maken van layout onderdelen die vrijwel altijd hetzelfde zijn.

Maar het antwoord op mijn vraag ligt dieper. Het gaat me er niet om wat je met een object of static class kan. Het gaat mij erom wanneer je iets als een object moet beschouwen. Heel plastisch gezegd, ik heb maar 1 Processor, en het enige wat ik feitelijk kan doen is "het ding inschakelen" (door de "execute" method aan te roepen). Dus is die processor dan wel een object? Of is het een statische class?

Reageren