Path: csiph.com!v102.xanadu-bbs.net!xanadu-bbs.net!usenet.blueworldhosting.com!feeder01.blueworldhosting.com!peer01.iad.highwinds-media.com!news.highwinds-media.com!feed-me.highwinds-media.com!post01.iad.highwinds-media.com!fx09.iad.POSTED!not-for-mail From: Arved Sandstrom User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:24.0) Gecko/20100101 Thunderbird/24.1.0 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: Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 8bit Lines: 81 Message-ID: <2IMru.14$TA.9@fx09.iad> X-Complaints-To: abuse@newsgroups-download.com NNTP-Posting-Date: Tue, 17 Dec 2013 00:14:54 UTC Organization: Public Usenet Newsgroup Access Date: Mon, 16 Dec 2013 20:14:53 -0400 X-Received-Bytes: 3980 X-Received-Body-CRC: 3802480636 Xref: csiph.com comp.lang.java.programmer:26957 On 10/16/2013 07:55 AM, lipska the kat wrote: > 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. Must admit, IPerson made me cringe too. In any context I can think of. I'm not as antagonistic to the Person concept as an implementation. Despite what you said, all a coder needs to do with that concept is model just what they need. If I was going to model a pedestrian mobility study using some random algorithms, I might well call my discrete construct a Person. AHS -- When a true genius appears, you can know him by this sign: that all the dunces are in a confederacy against him. -- Jonathan Swift