Path: csiph.com!usenet.pasdenom.info!aioe.org!news.stack.nl!newsfeed.xs4all.nl!newsfeed1.news.xs4all.nl!xs4all!usenetcore.com!Xl.tags.giganews.com!border1.nntp.ams.giganews.com!nntp.giganews.com!local2.nntp.ams.giganews.com!nntp.bt.com!news.bt.com.POSTED!not-for-mail NNTP-Posting-Date: Wed, 16 Oct 2013 05:55:56 -0500 Date: Wed, 16 Oct 2013 11:55:53 +0100 From: lipska the kat <"nospam at neversurrender dot co dot uk"> Organization: Trollbusters 3 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:17.0) Gecko/20130308 Thunderbird/17.0.4 MIME-Version: 1.0 Newsgroups: comp.lang.java.programmer Subject: Re: Java EE Architecture References: <69e1528a-aa62-41ce-88e5-1540f437e89e@googlegroups.com> <0672ja-utj.ln1@tempest.fredriksson.dy.fi> In-Reply-To: <0672ja-utj.ln1@tempest.fredriksson.dy.fi> Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 8bit Message-ID: Lines: 73 X-Usenet-Provider: http://www.giganews.com X-AuthenticatedUsername: NoAuthUser X-Trace: sv3-cxlw0MGrBfht85REvXIQoZzbuz3eYHucyrnQe+eZ/vGyPkH2rUNvDJWoRJVfgQVwoj7CYZ9BJe2uOPH!Dcd38qd5OAcW80npT2Jm+D5b8Z+wLfEIN/rjFZcUeSDVcLRSUPPlCTWfnTIyE6C4FPPvGZcmzq5J X-Complaints-To: abuse@btinternet.com X-DMCA-Complaints-To: abuse@btinternet.com 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: 3925 Xref: csiph.com comp.lang.java.programmer:26329 On 16/10/13 11:42, Donkey Hottie wrote: > 16.10.2013 11:45, 1connu kirjoitti: >> lipska the kat a écrit : >>> 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. You *cannot* be serious ... IPerson groan :-( If you are developing an Identity Management system surely Identity might be a better abstraction ... just a thought. -- Lipska the Kat©: Troll hunter, sandbox destroyer and farscape dreamer of Aeryn Sun GNU/Linux user #560883 - http://www.linuxcounter.net