I understand your scenario.  As you stated, you need method calls to
initialize your data.  That is a form of encapsulation.

All I'm saying is that exposing your private fields to modification
from outside the class *is* breaking the concept of encapsulation.

I've had scenarios like yours before (where bad data in the DB needs
to be loaded/displayed).  In those cases, my ORM objects are
dead-simple POCO's with getters/setters.  I then used a higher-level
"domain" object that had my validation and business logic.  Using
something like Automapper made moving the data back-and-forth pretty
easy.

---
Patrick Steele
http://weblogs.asp.net/psteele



On Mon, Oct 4, 2010 at 1:16 PM, MWightman <[email protected]> wrote:
> Actual it is not.  I all my object initialization via constructor and
> require a fully valid object. I use a private no arg for ORM usage.
> My objects have methods not many  getters/setters, I do not use
> getters/setters unless they are truly called for.
> If data in the database is invalid it is still necessary that the
> object be re-hydrated to allow for correction.  if the data had to
> pass the  validation of getter/setters it would fail.
>
> Example objejct
>
> I would like to set all of the private fields with no need to any
> getters/setters
>
> public class order
> {
>
>    private Iset<orderline> _lines
>
>    private IAddress _address
>    private bool _shipped;
>
>
>
>    public  Submit()
>    {
>      if (_lines.count!=0)
>      {
>          _shipped=true;
>      }
>    else
>      {
>          throw new exception()
>       }
>    }
>
>
> }
>
>
>
>
>
>
>
> On Oct 4, 10:24 am, Patrick Steele <[email protected]> wrote:
>> Um, that's the *opposite* of encapsulation.  By giving access to
>> private fields, anyone can change the value of the field -- so the
>> access to the fields is no longer encapsulated to just your
>> getters/setters.
>>
>> ---
>> Patrick Steelehttp://weblogs.asp.net/psteele
>>
>>
>>
>> On Mon, Oct 4, 2010 at 7:52 AM, MWightman <[email protected]> 
>> wrote:
>> > I would much prefer to map to private fields not public properties for
>> > the sake of encapsulation.  Can AR map relations and collections to
>> > private fields?
>>
>> > Thanks
>>
>> > --
>> > You received this message because you are subscribed to the Google Groups 
>> > "Castle Project Users" group.
>> > To post to this group, send email to [email protected].
>> > To unsubscribe from this group, send email to 
>> > [email protected].
>> > For more options, visit this group 
>> > athttp://groups.google.com/group/castle-project-users?hl=en.
>
> --
> You received this message because you are subscribed to the Google Groups 
> "Castle Project Users" group.
> To post to this group, send email to [email protected].
> To unsubscribe from this group, send email to 
> [email protected].
> For more options, visit this group at 
> http://groups.google.com/group/castle-project-users?hl=en.
>
>

-- 
You received this message because you are subscribed to the Google Groups 
"Castle Project Users" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/castle-project-users?hl=en.

Reply via email to