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íš.