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]