Metodu #new definuješ tak, že např. vyvolá výjimku:
new
self error: 'Use #ic: to create new instances.'
A v metodě #ic: použiješ self basicNew initialize místo self new pro vytvoření nové instance:
ic: ic
^ self basicNew
initialize;
ic: ic
Nově vytvořené instanci je nutné zaslat #initialize, protože to právě standardně zajišťuje #new, které v tomto případě obcházíš.
| 2 | No.2 Revision |
Metodu #new definuješ tak, že např. vyvolá výjimku:
new
self error: 'Use #ic: to create new instances.'
A v metodě #ic: použiješ self basicNew initialize místo self new pro vytvoření nové instance:
ic: ic
^ self basicNew
initialize;
ic: ic
#basicNew je primitivní metoda pro skutečné vytvoření nové instance. Nově vytvořené instanci je nutné zaslat #initialize, protože to právě standardně zajišťuje metoda #new, které (je definována jako ^ self basicNew initialize), kterou v tomto případě obcházíš.
Copyright students of FIT CTU and others, 2014. Content on this site is licensed under a Creative Commons Attribution-ShareAlike 4.0 International license.