Abstract Factory & Service Oriented Architecture
Abstract factory is my favorite design pattern. So the first thing I noticed about Service Oriented Architecture (SOA) is that it's a variation of abstract factory. I sketched out two designs of the same system, one as abstract factory, the other as an SOA -
![]() ![]() |
Similarities include:
- central point of control
- implementations determined at run-time
- maximum class granularity with minimum complexity
But I suppose their differences are more interesting. One of the touted features of SOA is "local implementation" combined with centralized interface control. How does that differ from AbstractFactory? In SOA, the "creation" ability of the abstract factory is shifted to the service. Another difference is that a requester needs knowledge of both the abstract factory and the created factory ("Chevy factory") but in SOA, the requester is isolated from knowledge of the service.
AbstractFactory is an application pattern, SOA is enterprise.
SOA has an explicit bus, AbstractFactory doesn't.
But in general, most differences are implied, based on their context of usage, not on the patterns themselves.




Posted by credit card terminal and processing on February 20, 2007 at 10:35 AM EST
Website: http://del.icio.us/credit_card_terminal #