ok,

i don't use the controller classes this time, so I could see the factory 
usage there.

Because I need the factory also in the gap class RepositoryXXXImpl, we 
should make a getFactory() method in RepositoryImplBase.

regards

Patrik Nordwall schrieb:
> What is the benefit to do it via the repository, when it only delegates to
> the factory anyway?
> 
> In DDD book it is described that Repository and Factory have different
> responsibilities. We could sure do it through delegation via repository, if
> it simplifies or makes things more beautiful, but I'm not totally convinced
> that it will.
> 
> Note that the factories also are used by abstract controller classes in the
> framework also. If done via repository we must introduce some repository
> interface with the create method in the framework also.
> 
> /Patrik
> 
> 
> 
> Steffen Stundzig wrote:
>> Hi,
>>
>> what Do you think about a single point of rich object creation in the 
>> appropriate object repository like:
>>
>> RichPersonRepositoryImplBase:
>>
>> public RichPerson createFrom(Person domain) {
>>      RichPerson richPerson = richPersonFactory.create();
>>      richPerson.fromModel(domain);
>>      return richPerson;
>> }
>>
>> So we have one single method to create objects, which could be used 
>> e.g. from RichPersonRepositoryImpl to transform person objects retrieved 
>> from other PersonService methods without the need to get/inject the 
>> personFactory.
>>
>> In the referenced rich objects, which contains reference holder like:
>>
>>     public RichPerson getCaller() {
>>          if (callerHolder != null) {
>>              return callerHolder.get();
>>          }
>>
>>          populate();
>>          callerHolder = new AtomicReference<RichPerson>();
>>          if (populated != null) {
>>              if (populated.getCaller() != null) {
>>                  callerHolder.set(richCallerFactory.create());
>>                  callerHolder.get().fromModel(populated.getCaller());
>>              }
>>          }
>>          return callerHolder.get();
>>      }
>>
>> this could be changed to call the createFromModel()-method. Therefore we 
>> must inject repositories into other repositories, which is more 
>> symmetric to the backend stuff.
>>
>> What do you think of it?
>>
>> regards
>>
>> ------------------------------------------------------------------------------
>> Check out the new SourceForge.net Marketplace.
>> It is the best place to buy or sell services for
>> just about anything Open Source.
>> http://p.sf.net/sfu/Xq1LFB
>> _______________________________________________
>> Fornax-developer mailing list
>> Fornax-developer@lists.sourceforge.net
>> https://lists.sourceforge.net/lists/listinfo/fornax-developer
>>
>>
> 

-- 
Steffen Stundzig

Telefon: +49 (0) 341 / 231-0183-401
Telefax: +49 (0) 341 / 231-0183-411
Mobil:   +49 (0) 151 / 173-9673-1 (!neu)

http://itemis.de
steffen.stund...@itemis.de
https://www.xing.com/profile/Steffen_Stundzig

itemis AG
Niederlassung Leipzig
Ludwig-Erhard-Straße 51
04103 Leipzig

Rechtlicher Hinweis:
Registergericht: Amtsgericht Dortmund HRB 20621
Sitz der Gesellschaft: 44536 Lünen, Am Brambusch 15-24
Vorstand: Wolfgang Neuhaus, Jens Wagener, Dr. Georg Pietrek
Aufsichtsrat: Prof. Dr. Burkhard Igel (Vorsitzender), Stephan Grollmann, 
Michael Neuhaus



------------------------------------------------------------------------------
Check out the new SourceForge.net Marketplace.
It is the best place to buy or sell services for
just about anything Open Source.
http://p.sf.net/sfu/Xq1LFB
_______________________________________________
Fornax-developer mailing list
Fornax-developer@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/fornax-developer

Reply via email to