Hi John,

thanks a lot this really makes sense to me. Thanks for explaining with
this simple example.

I was just wondering, does this really work? For real? Isn't it too
complx? Can you still debug this? Why having all these different
implementations? Maybe I am too suspicious, but I am always alert when
I hear introspection, AOP and magic.

Thanks,

Oliver

Anyway, as other people know I am no friend 

On Fri, 3 Dec 2004 13:55:00 -0500, John Gilbert <[EMAIL PROTECTED]> wrote:
> The key is to code to interfaces and pojo objects as much as possible
> and rely on the framework to find the implementation. This way the
> business logic is fully decoupled from the platform. For example, a
> junit test could be written to test the business logic without the app
> server.
> 
> Here is an overly simplified example. Basically, my pojo and action
> classes can be run anywhere. The interface impl is plugged as necessary.
> 
> class MyPojo {
>         private String name;
>         public String getName() { return name; }
>         public void setName(String name) { this.name = name; }
> }
> 
> interface MyService {
>         public doTheWork(MyPojo pojo);
> }
> 
> class MyServiceJdoImpl implements MyService {...}
> class MyServiceHibernateImpl implements MyService {...}
> class MyServiceEntityBeanImpl implements MyService {...}
> class MyServiceTestImpl implements MyService {...}
> ...etc...
> 
> // the spring framework reads its descriptor file to determine the right
> 
> // service implementation and uses some combination of introspection and
> AOP
> // to call setService() on the action.
> // This is the magic I haven't delved into yet.
> class MyAction(...) {
>         private MyService svc;
>         public void setService(MyService svc) {...}
>         public ... execute(...) {
>                 ...
>                 svc.doTheWork(pojo);
>                 ...
>         }
> }
> 
> // in my unit test I can do all the setup and test the functionality
> // or use spring here also I think.
> class MyUnitTest {
> 
>         public void testService() {
>                 ...
>                 MyAction action = new MyAction();
>                 MyService svc = new MyServiceTestImpl();
>                 action.setService(svc);
>                 action.execute(...);
>         }
> }
> 
> How did I do? Does this make sense? I definitely like it as a design
> pattern, but I'm not completely sold on needing a full framework for it.
> 
> The jury is still out. But, it does sell a lot of books. ;-)
>

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to