>
> If you want to do something that doesn't break encapsulation, then you
> should simply release the one ivar connection.  That will let the receiving
> object perform its own actions, by itself, on its own behalf, as appropriate
> to its own affairs.


Thanks, however, I do not see how to accomplish my purpose. I'm confused.
Help ;)

I have object1 that has a connection to object2, (object1.connection =
object2). And at the same time object2.connection = object1:

O1 -----> O2
O2 -----> O1

If one of these objects gets deallocated how should I make sure the other
object is not pointing to the now deallocated object without doing what I
did:

- (void)dealloc {

if (self.connection) {

self.connection.connection = nil;

}

[super dealloc];

}

Thanks

On Sun, Oct 11, 2009 at 6:11 PM, Greg Guerin <[email protected]> wrote:

> Karolis Ramanauskas wrote:
>
>  - (void)dealloc {
>>
>>    if (self.connection) {
>>
>>        self.connection.connection = nil;
>>
>>    }
>>
>>    [super dealloc];
>> }
>>
>
>
> Why would you do this?  You're making one object responsible for the
> internals of another object.  This is a bad idea.  It breaks the individual
> encapsulation of each object.
>
> One of the cardinal points of good object-oriented design is that an
> object's responsibilities are circumscribed.  It should manage itself and
> the things it directly references, nothing else.  For any objects it DOES
> reference, each of those objects also has its own responsibilities, and so
> on recursively.  Objects shouldn't poke their noses into another object's
> business.
>
> If you want to do something that doesn't break encapsulation, then you
> should simply release the one ivar connection.  That will let the receiving
> object perform its own actions, by itself, on its own behalf, as appropriate
> to its own affairs.
>
>  -- GG
>
_______________________________________________

Cocoa-dev mailing list ([email protected])

Please do not post admin requests or moderator comments to the list.
Contact the moderators at cocoa-dev-admins(at)lists.apple.com

Help/Unsubscribe/Update your Subscription:
http://lists.apple.com/mailman/options/cocoa-dev/archive%40mail-archive.com

This email sent to [email protected]

Reply via email to