Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 12 Next »

[07:51:51 EDT(-0400)] * EricDalquist (n=EricDalq@76.201.150.153) has joined ##uportal
[09:11:54 EDT(-0400)] * EricDalquist (n=EricDalq@76.201.150.153) has joined ##uportal
[09:35:47 EDT(-0400)] * EricDalquist (n=EricDalq@76.201.150.153) has joined ##uportal
[09:53:32 EDT(-0400)] * esm (n=esm@esm.qis.net) has joined ##uportal
[10:15:07 EDT(-0400)] * EricDalquist (n=dalquist@bohemia.doit.wisc.edu) has joined ##uportal
[11:04:30 EDT(-0400)] <EricDalquist> uhg
[11:08:05 EDT(-0400)] <esm> ruh-roh shaggy
[11:08:21 EDT(-0400)] <EricDalquist> just frustraited while cleaning up the transfer/domain objects
[11:08:31 EDT(-0400)] * esm nods
[11:08:54 EDT(-0400)] <esm> today is JHU's commencement so i have the day off (smile)
[11:08:56 EDT(-0400)] <EricDalquist> Some of the interfaces ... like ICustomWindowState are used in both Transfer and Domain objects and have just one impl
[11:09:10 EDT(-0400)] <esm> ok
[11:09:14 EDT(-0400)] <EricDalquist> I'm wondering if I should just convert those simple objects to simple pojos
[11:09:32 EDT(-0400)] <EricDalquist> on the other hand there are interfaces like IPortletInfo and IPreferences
[11:09:49 EDT(-0400)] <EricDalquist> which I feel like need to be cloned so there is a Transfer version of each
[11:10:10 EDT(-0400)] <EricDalquist> since they transfer versions have slightly different requirements than the domain objects
[11:10:17 EDT(-0400)] <EricDalquist> namely layering
[11:10:23 EDT(-0400)] <EricDalquist> and serializability requirements
[11:10:47 EDT(-0400)] <esm> can you have another object be responsible for managing the layering and serializablity
[11:10:58 EDT(-0400)] <EricDalquist> ?
[11:11:06 EDT(-0400)] <esm> or do they have to be inherent functionalitys/responsiblities of the tranfer object itself
[11:11:10 EDT(-0400)] <EricDalquist> well
[11:11:17 EDT(-0400)] <EricDalquist> the transfer objects need to be serializable
[11:11:28 EDT(-0400)] <EricDalquist> most caching frameworks we want to work with at that level require that
[11:11:36 EDT(-0400)] <EricDalquist> the domain objects have to deal with layering
[11:11:49 EDT(-0400)] <EricDalquist> and some of these shared interfaces are stuck in the middle
[11:12:06 EDT(-0400)] * esm checks out the branch
[11:12:54 EDT(-0400)] <EricDalquist> so the transfer objects are supposed to be simple objects ... interface representations of pojos
[11:13:03 EDT(-0400)] <EricDalquist> domain objects end up having some logic
[11:13:11 EDT(-0400)] <EricDalquist> dealing with layered views of data
[11:13:21 EDT(-0400)] <EricDalquist> although I'm not sure that is appropriate either
[11:13:39 EDT(-0400)] <EricDalquist> I've struggled with this part of the design a few times
[11:13:47 EDT(-0400)] <EricDalquist> and have never come out feeling completely comfortable with the design
[11:14:08 EDT(-0400)] <esm> you could have a new object which is responsible for managing the layering; put the layering logic in it
[11:14:20 EDT(-0400)] <esm> i don't know what that would look like code-wise though
[11:20:14 EDT(-0400)] <EricDalquist> yeah
[11:20:30 EDT(-0400)] <EricDalquist> hrm
[11:20:47 EDT(-0400)] <EricDalquist> so lets say I remove all the layering from the domain objects that you get from the registries
[11:20:59 EDT(-0400)] <esm> ok
[11:21:01 EDT(-0400)] <EricDalquist> but create Layered versions of all of the domain objects
[11:21:42 EDT(-0400)] <EricDalquist> so any code that needs a layered view can create ... say a new LayeredPortletEntity(IPortletEntity)
[11:21:59 EDT(-0400)] <EricDalquist> and since the IPortletEntity provides direct references to all of it's parent objects
[11:22:14 EDT(-0400)] <EricDalquist> the layering logic would be encapsulated in that LayeredPortletEntity
[11:22:46 EDT(-0400)] <EricDalquist> and the code that needed the layered object would be responsible for dealing with changes on the IPortletEntity (that is the hardest part of putting layering logic in the default domain object impls)
[11:23:03 EDT(-0400)] <EricDalquist> I already have somethng like this with Localized* versions of many of the domain objects
[11:23:33 EDT(-0400)] <EricDalquist> that provide additional method to access fields like DisplayName and Description in the correct locale
[11:24:47 EDT(-0400)] <esm> Yes, I think that sounds good. My perspective (again, acking that I have never coded with this) is that layering is a decoration of the domain model
[11:25:10 EDT(-0400)] <EricDalquist> yeah
[11:25:15 EDT(-0400)] <esm> sounds like locale is as well
[11:25:38 EDT(-0400)] <EricDalquist> cool ...
[11:26:25 EDT(-0400)] <esm> so does this mean that if Layering is abstracted out of the model, that the domain objects - sans layering - can also act as xfer objects? or is there still the need for the xfer objects
[11:26:42 EDT(-0400)] <EricDalquist> hrm I'll have to think about that
[11:26:44 EDT(-0400)] <esm> if so, does the xfer resposniblities also act as decorations
[11:49:51 EDT(-0400)] <EricDalquist> so what do you think about converting the real simple interfaces like: ICustomPortletMode to pojos
[11:54:42 EDT(-0400)] <esm> sounds good to me
[11:54:57 EDT(-0400)] <esm> i think that reduces some complexity

  • No labels