X-Received: by 10.224.11.7 with SMTP id r7mr2569365qar.7.1381920182755; Wed, 16 Oct 2013 03:43:02 -0700 (PDT) Path: csiph.com!newsfeed.hal-mli.net!feeder3.hal-mli.net!newsfeed.hal-mli.net!feeder1.hal-mli.net!npeer01.iad.highwinds-media.com!news.highwinds-media.com!feed-me.highwinds-media.com!i2no15394540qav.0!news-out.google.com!9ni47009qaf.0!nntp.google.com!Xl.tags.giganews.com!border1.nntp.dca.giganews.com!nntp.giganews.com!local2.nntp.dca.giganews.com!news.giganews.com.POSTED!not-for-mail NNTP-Posting-Date: Wed, 16 Oct 2013 05:43:02 -0500 Date: Wed, 16 Oct 2013 13:42:40 +0300 From: Donkey Hottie User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:24.0) Gecko/20100101 Thunderbird/24.0 MIME-Version: 1.0 Newsgroups: comp.lang.java.programmer Subject: Re: Java EE Architecture References: <69e1528a-aa62-41ce-88e5-1540f437e89e@googlegroups.com> In-Reply-To: Message-ID: <0672ja-utj.ln1@tempest.fredriksson.dy.fi> Lines: 69 X-Usenet-Provider: http://www.giganews.com X-Trace: sv3-XgtmU33r3iZPTUXUe+6Yy2a3S7UwSwQ2pUG6J47oiKD6AEISr724azqXYmMcBupvM86Rb8gC4m/lgfG!I8FhnBnWSB3X6L0gzRcnnYipmALze4tnooEzelAf3oNe7g6Ey1SVkQDUgp8EEv6po2u/Vg== X-Complaints-To: abuse@giganews.com X-DMCA-Notifications: http://www.giganews.com/info/dmca.html X-Abuse-and-DMCA-Info: Please be sure to forward a copy of ALL headers X-Abuse-and-DMCA-Info: Otherwise we will be unable to process your complaint properly X-Postfilter: 1.3.40 X-Original-Bytes: 3424 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable X-Received-Bytes: 3723 Xref: csiph.com comp.lang.java.programmer:26327 16.10.2013 11:45, 1connu kirjoitti: > lipska the kat a =E9crit : >> On 09/10/13 21:41, art.marole@gmail.com wrote: >>> Hi all, >>> >>> I would like to prepare typical Java EE solution (EJB, JSF, JPA) now,= >>> and I have quite stupid problem related with domain objects. I want >>> to create Person class as persistence class, but I don't know in >>> which module I shoud put this class: Business Layer (ejb module) or >>> in Integration Layer (jar module). >>> >>> Person class is more related with logic, so I should put it in ejb >>> module, but in this case I will need to create dependency relation >>> from Integration Layer to Business Layer as Integration Layer need to= >>> know what object should store in DB (ex. void store(Person object){};= ). >>> Put Person class in Integration Layer will remove this unwanted >>> dependency, but I feel that Person class is more Business class then >>> Integration class. >>> >>> What do you think about it? >> >> >> A Person class ... A PERSON class., please, please, *please* don't >> have a Person class >> >> For the sake of whatever omnipotent deity you pray to, do not have a >> Person class >> >> *People* do not belong in a computer system. >> >> Why? >> >> Because it's a poor abstraction. >> >> How are you going to model consciousness, sentience, the 'mind', the >> 'soul'? let alone arms legs, eyes and teeth :-) >> >> You *do not need* a Person class. >> >> Let's put it another way >> >> The very fact that you are having problems deciding where your Person >> belongs should alert you to the fact that it is a poor abstraction. >> >> Try Account, or Record, or if you absolutely *must* User but not >> Person, you will end up regretting it. >> >> lipska >> >> > Why not ? > You can have an abstract class Person with minimum field (name, date > birth) and sub class depending of role of theses persons (ex User > (login/password) ) in your model. I see no problem with Person. I have interface IPerson, and implementations Person and ExternalPerson. I'm a lead programmer on an Identity Management solution. --=20 Keep it short for pithy sake.