guile-user
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Is there any approach to define "private" vars in GOOPS?


From: nalaginrut
Subject: Re: Is there any approach to define "private" vars in GOOPS?
Date: Wed, 09 Mar 2011 17:37:03 +0800

> > If you can determine at runtime whether or not any given slot access is
> > allowed - perhaps based on (current-module) - it should be possible to
> > enforce this by defining a new kind of slot #:allocation and putting
> > that runtime check in the #:slot-ref function.
> > 
> > Regards,
> >         Neil
> 
> Thanks for your answer :-)
> But I think a new kind of slot allocation seems not easy.
> For example. If I got a class "player", and assume we've already defined
> a new kind allocation, say, #:allocation #:private.
> ===============================
> (define-class <player> ()
>   ......
>   (score #:init-value 0 #:allocation #:private)
>   ......)
> =====
> I don't want somebody change "score" except calling a method to compute
> his real score.
> And I have a method to update player's score:
> =====
> (define-method (score-update (player <player>))
>  ...
>  (slot-set! (slot-ref player 'score) newscore)
>  ... )
> ========================
> The problem is how to check the scope of "score" from "score-update".
> I've no idea because the definition of "score-update" is actually out of
> the class definition. 
> 
> Can I get some advice about the topic "how to hide the critical
> property"? Or maybe I have some misunderstandings?
> 

Sorry I think the "update score" is a fake problem. It can be solved by
#:allocation #:virtual.
But I still want to talk this topic: "How to hide the critical
property?" 

-- 
GNU Powered it
GPL Protected it
GOD Blessed it

HFG - NalaGinrut




reply via email to

[Prev in Thread] Current Thread [Next in Thread]