I haven't played with the relation example yet, but will real soon. Just some initial thoughts... I like RelationSlot. To me association seems one-way while a relation is two-way. btw, Is there some reason to not match the syntax of the often cited paper "Flexible Object Layout" ? I see one advantage is that its easier to read all the slot names vertically aligned. Object subclass: #SlotExampleMovie slots: { #name. #year. #director => ToOneRelationSlot opposite: #directedMovies class: #SlotExamplePerson. #actors => ToManyRelationSlot opposite: #actedInMovies class: #SlotExamplePerson. } classVariables: { } category: 'SlotAssociations-Tests-Example' Also maybe an alternative slot class name so that it reads more like a sentence... "#director related to one #directedMovies in class #SlotExamplePerson" Object subclass: #SlotExampleMovie slots: { #name. #year. #director => RelatedToOne inverse: #directedMovies inClass: #SlotExamplePerson. #actors => RelatedToMany inverse: #actedInMovies inClass: #SlotExamplePerson. } classVariables: { } category: 'SlotAssociations-Tests-Example' Or even... Object subclass: #SlotExampleMovie slots: { #name. #year. #director => OneRelatedTo many: #directedMovies inClass: #SlotExamplePerson. #actors => ManyRelatedTo many: #actedInMovies inClass: #SlotExamplePerson. } classVariables: { } category: 'SlotAssociations-Tests-Example' cheers -ben On Tue, Feb 24, 2015 at 2:33 AM, Jan van de Sandt <jvdsandt@gmail.com> wrote:
On Mon, Feb 23, 2015 at 9:59 AM, Marcus Denker <marcus.denker@inria.fr> wrote:
On 21 Feb 2015, at 21:11, Jan van de Sandt <jvdsandt@gmail.com> wrote:
Today I experimented a little with the new Slots feature of Pharo 4.0. As an example I implemented support for associations/relationships.
Very nice! Can I add this to Pharo4 as an example?
Sure, cool!
My idea is that at first we add these things as examples, and then later take the examples and distill a library of generally useful slots.
That sounds like a good approach to get familiar with these kind of new features.
Some things I can do to improve the Example - Add an option to make one side of the association readonly. In most situations I think it's a good idea to update an association only from one side to keep things simple. - Whats a better name AssociationSlot or RelationSlot? I'm not sure - As Stéphane said, isn't there a nicer way to declare the associations? - Better error handling
Jan.