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 <jvdsa...@gmail.com>
wrote:

>
> On Mon, Feb 23, 2015 at 9:59 AM, Marcus Denker <marcus.den...@inria.fr>
> wrote:
>
>>
>> > On 21 Feb 2015, at 21:11, Jan van de Sandt <jvdsa...@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.
>
>
>
>
>
>
>
>
>
>
>
>

Reply via email to