Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > comp.lang.java.programmer > #26328

Re: Java EE Architecture

Date 2013-10-16 11:49 +0100
From lipska the kat <"nospam at neversurrender dot co dot uk">
Organization Trollbusters 3
Newsgroups comp.lang.java.programmer
Subject Re: Java EE Architecture
References <69e1528a-aa62-41ce-88e5-1540f437e89e@googlegroups.com> <qMCdnd-cQ4RiAcvPnZ2dnUVZ7tudnZ2d@bt.com> <l3ljnp$i9c$1@shakotay.alphanet.ch>
Message-ID <Qsydne-OrL7R8sPPnZ2dnUVZ7sidnZ2d@bt.com> (permalink)

Show all headers | View raw


On 16/10/13 09:45, 1connu wrote:
> 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.

Well let's see.

A User is not a subclass of Person really is it?

A User uses the system, at the very least a user can be a human being or 
another computer so if you want to go down that road then User should be 
your base class. A User has credentials, whatever they may be.

Given the above, what does a Person class give you that (say) Account 
doesn't ... A User *has an* Account.

User says what it is, a User. It certainly *doesn't* imply that the User 
is a Person. (see above)
Account says what it is, a record of a Users interaction with the system 
for example.

When we think about a system, certainly when we are starting to design 
it, we need to use words that help us to partition the system into 
meaningful abstractions. User, Account, Session, Address etc etc.

Introducing Person into the model clouds our thinking. A Person is not a 
cohesive abstraction of some part of a system. It is a word we use to 
describe the other similar sentient entities we encounter in our version 
of reality. The word Person comes with a whole load of built in baggage 
that does nothing to assist us in deciding on the components of our system.

That is why the class Person is not a good abstraction and doesn't 
belong in our model.

-- 
Lipska the Kat©: Troll hunter, sandbox destroyer
and farscape dreamer of Aeryn Sun
GNU/Linux user #560883 - http://www.linuxcounter.net

Back to comp.lang.java.programmer | Previous | Next — Previous in thread | Next in thread | Find similar | Unroll thread


Thread

Java EE Architecture art.marole@gmail.com - 2013-10-09 13:41 -0700
  Re: Java EE Architecture Lew <lewbloch@gmail.com> - 2013-10-09 14:45 -0700
    Re: Java EE Architecture Arne Vajhøj <arne@vajhoej.dk> - 2013-10-09 22:00 -0400
  Re: Java EE Architecture Arne Vajhøj <arne@vajhoej.dk> - 2013-10-09 22:18 -0400
    Re: Java EE Architecture art.marole@gmail.com - 2013-10-10 00:47 -0700
      Re: Java EE Architecture Arne Vajhøj <arne@vajhoej.dk> - 2013-10-16 20:37 -0400
  Re: Java EE Architecture lipska the kat <"nospam at neversurrender dot co dot uk"> - 2013-10-10 13:26 +0100
    Re: Java EE Architecture 1connu <1connu999@gmail.com> - 2013-10-16 10:45 +0200
      Re: Java EE Architecture Donkey Hottie <donkey@fredriksson.dy.fi> - 2013-10-16 13:42 +0300
        Re: Java EE Architecture lipska the kat <"nospam at neversurrender dot co dot uk"> - 2013-10-16 11:55 +0100
          Re: Java EE Architecture Donkey Hottie <donkey@fredriksson.dy.fi> - 2013-10-16 14:18 +0300
          Re: Java EE Architecture Donkey Hottie <donkey@fredriksson.dy.fi> - 2013-10-16 14:25 +0300
            Re: Java EE Architecture lipska the kat <"nospam at neversurrender dot co dot uk"> - 2013-10-16 14:23 +0100
              Re: Java EE Architecture Donkey Hottie <donkey@fredriksson.dy.fi> - 2013-10-16 17:10 +0300
                Re: Java EE Architecture lipska the kat <"nospam at neversurrender dot co dot uk"> - 2013-10-16 16:44 +0100
                Re: Java EE Architecture "L." <carisio@gmail.com> - 2013-10-16 10:15 -0700
                Re: Java EE Architecture lipska the kat <"nospam at neversurrender dot co dot uk"> - 2013-10-16 19:01 +0100
                Re: Java EE Architecture "L." <carisio@gmail.com> - 2013-10-16 12:17 -0700
                Re: Java EE Architecture Martin Gregorie <martin@address-in-sig.invalid> - 2013-10-16 21:01 +0000
                Re: Java EE Architecture Arne Vajhøj <arne@vajhoej.dk> - 2013-10-16 20:40 -0400
                Re: Java EE Architecture Donkey Hottie <donkey@fredriksson.dy.fi> - 2013-10-17 00:00 +0300
              Re: Java EE Architecture Wayne <nospam@all.invalid> - 2013-10-16 23:08 -0400
                Re: Java EE Architecture Donkey Hottie <donkey@fredriksson.dy.fi> - 2013-10-19 17:05 +0300
                Re: Java EE Architecture Lew <lewbloch@gmail.com> - 2013-10-19 14:48 -0700
                Re: Java EE Architecture lipska the kat <"nospam at neversurrender dot co dot uk"> - 2013-10-20 09:00 +0100
                Re: Java EE Architecture "Qu0ll" <Qu0llSixFour@gmail.com> - 2013-10-20 19:40 +1100
                Re: Java EE Architecture lipska the kat <"nospam at neversurrender dot co dot uk"> - 2013-10-20 10:07 +0100
          Re: Java EE Architecture Arved Sandstrom <asandstrom2@eastlink.ca> - 2013-12-16 20:14 -0400
            Re: Java EE Architecture lipska the kat <"lipskathekat at yahoo dot co dot uk"> - 2013-12-17 08:47 +0000
        Re: Java EE Architecture Jeff Higgins <jeff@invalid.invalid> - 2013-10-16 20:19 -0400
          Re: Java EE Architecture Jeff Higgins <jeff@invalid.invalid> - 2013-10-16 21:24 -0400
      Re: Java EE Architecture lipska the kat <"nospam at neversurrender dot co dot uk"> - 2013-10-16 11:49 +0100
        Re: Java EE Architecture "Qu0ll" <Qu0llSixFour@gmail.com> - 2013-10-16 22:24 +1100
          Re: Java EE Architecture lipska the kat <"nospam at neversurrender dot co dot uk"> - 2013-10-16 13:39 +0100
            Re: Java EE Architecture Arne Vajhøj <arne@vajhoej.dk> - 2013-10-16 20:39 -0400
              Re: Java EE Architecture "Qu0ll" <Qu0llSixFour@gmail.com> - 2013-10-17 13:43 +1100
              Re: Java EE Architecture Jeff Higgins <jeff@invalid.invalid> - 2013-10-16 23:22 -0400
                Re: Java EE Architecture lipska the kat <"nospam at neversurrender dot co dot uk"> - 2013-10-17 08:53 +0100
              Re: Java EE Architecture lipska the kat <"nospam at neversurrender dot co dot uk"> - 2013-10-17 08:57 +0100
                Re: Java EE Architecture "Qu0ll" <Qu0llSixFour@gmail.com> - 2013-10-17 19:31 +1100
                Re: Java EE Architecture lipska the kat <"nospam at neversurrender dot co dot uk"> - 2013-10-17 09:56 +0100
                Re: Java EE Architecture "Qu0ll" <Qu0llSixFour@gmail.com> - 2013-10-17 20:18 +1100
                Re: Java EE Architecture lipska the kat <"nospam at neversurrender dot co dot uk"> - 2013-10-17 10:56 +0100
                Re: Java EE Architecture "Qu0ll" <Qu0llSixFour@gmail.com> - 2013-10-17 21:39 +1100
                Re: Java EE Architecture lipska the kat <"nospam at neversurrender dot co dot uk"> - 2013-10-17 12:08 +0100
                Class Person [was: Java EE Architecture] "Chris Uppal" <chris.uppal@metagnostic.REMOVE-THIS.org> - 2013-10-18 08:19 +0100
                Re: Java EE Architecture Arne Vajhøj <arne@vajhoej.dk> - 2013-10-17 21:00 -0400
                Re: Java EE Architecture Arne Vajhøj <arne@vajhoej.dk> - 2013-10-17 21:02 -0400
                Re: Java EE Architecture lipska the kat <"nospam at neversurrender dot co dot uk"> - 2013-10-18 09:06 +0100
                Re: Java EE Architecture lipska the kat <"nospam at neversurrender dot co dot uk"> - 2013-10-18 09:04 +0100
                Re: Java EE Architecture Arne Vajhøj <arne@vajhoej.dk> - 2013-10-19 22:43 -0400
                Re: Java EE Architecture lipska the kat <"nospam at neversurrender dot co dot uk"> - 2013-10-20 09:05 +0100
                Re: Java EE Architecture Arne Vajhøj <arne@vajhoej.dk> - 2013-10-20 09:24 -0400
      Re: Java EE Architecture Arne Vajhøj <arne@vajhoej.dk> - 2013-10-16 20:43 -0400

csiph-web