• Post Reply Bookmark Topic Watch Topic
  • New Topic
programming forums Java Mobile Certification Databases Caching Books Engineering Micro Controllers OS Languages Paradigms IDEs Build Tools Frameworks Application Servers Open Source This Site Careers Other Pie Elite all forums
this forum made possible by our volunteer staff, including ...
Marshals:
  • Campbell Ritchie
  • Jeanne Boyarsky
  • Ron McLeod
  • Paul Clapham
  • Liutauras Vilda
Sheriffs:
  • paul wheaton
  • Rob Spoor
  • Devaka Cooray
Saloon Keepers:
  • Stephan van Hulst
  • Tim Holloway
  • Carey Brown
  • Frits Walraven
  • Tim Moores
Bartenders:
  • Mikalai Zaikin

Did Sheil sample solution use design patterns?

 
Bartender
Posts: 3648
16
Android Mac OS X Firefox Browser Java
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
Hello ranchers

Not sure if any one asked this but did he use design patterns in his solution?

From what I see, he used Front Controller (the Controller class) in the class diagram. Apart from that, I don't seem to identify any other in the other diagrams.
 
Ranch Hand
Posts: 145
8
Mac MySQL Database Java Ubuntu
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
Hi K. Tsang,

I guess there may be a couple more patterns in Cade's proposed architecture:

Boundary pattern: It is implemented by BidManager and AvailabilityManager. This pattern is essentially a version of facade pattern with transaction demarcation,as per Adam Bien book.

Proxy pattern: as remote systems are most probably SOAP or RESTful web services, InventoryDAO and PricingDAO talk with remote systems using generated stubs, and these stubs are proxy objects to remote implementations.

Cade/Sheil solution is very incomplete and in the kindle version of the book I have these DAOs only present on component diagram, but they still have to be in the system, and so the proxy patterns should be there.

UPDATE: Although obvious, DAO pattern is also part of the solution, and probably Data Transfer Object too (as the vehicle of data transfer from remote systems).
 
K. Tsang
Bartender
Posts: 3648
16
Android Mac OS X Firefox Browser Java
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
Thanks Mike.

The DAO from the component diagram is kinda obvious. Forgot to mention that haha.

I didn't thought the communication between DAO with external systems use the proxy pattern.

Not familiar with boundary pattern but, looking at the BidManager and AvailabilityManager, I first thought they may be using the Application Service pattern since these Managers do the real work of bid processing and stuff.

Talking about transfer object, can those entity classes consider TO since they do need to go back and forth between business and presentation tiers? Or are these entities stay inside the business tier
 
Mike Degteariov
Ranch Hand
Posts: 145
8
Mac MySQL Database Java Ubuntu
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
Hi K. Tsang,

The author of newer book, Adam Bien, has come up with a new set of Java EE patterns, but his set still has some older patterns from Deepak Alur's book.
Apparently, Application Service and Boundary serve the same purpose, and I almost think that these two are the same pattern under different names.

Still, Oracle kinda endorses this new book, since a number of patterns (Payload Extractor, Context Holder, Thread Tracker) that were first introduced in this book (well, at least I first seen them in this book) are mentioned in OCMJEA6 exam objectives.

As of transfer object, I guess as long as these container objects are part of code generated from 3rd party WSDLs then they most likely cannot serve as application entities.

Entites can, of course, be used to transfer data between parts of application where we have full control, so they can serve as data transfer objects where possible, but here in integration layer the data transfer happens with external systems, so entities cannot be used.
 
K. Tsang
Bartender
Posts: 3648
16
Android Mac OS X Firefox Browser Java
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
Thanks again Mike

I guess need some pattern review for me
 
reply
    Bookmark Topic Watch Topic
  • New Topic