Dan North <[EMAIL PROTECTED]> wrote on 26/03/2007 17:53:51:

> Hi folks.
>
> It turns out evolving an interface in a statically-typed language is a
> non-backwards compatible action. What I mean is, if I add or change a 
> method, then any clients implementing that interface will break, which
> is obviously a Bad Thing.
> 
> There's a nice pattern to manage this that looks like this:
> 
> <stuff to stop people implementing interfaces>
> 
> which I'd like to sneak into the codebase for Story, Scenario, Given, 
> Event, Outcome, Step, Behaviour and World (plus any others I've 
> forgotten) before people start implementing them.

This will prevent me from implementing Given while extending something 
else to use as a World. That's a really useful pattern for Worlds whose 
setUp() might break. So I don't want you to stop me overriding Given 
please! And I definitely don't want a messy pseudodoc method to implement, 
should I choose to ignore you. :P

Also, forcing us to extend ThingUsingMiniMock ties us into MiniMock, 
rather than just the JBehave Story framework. Having had a nightmare 
trying to get Abbot to play nice outside of JUnit, I don't want to push 
the same problem onto our users too. One of the things I most like about 
JBehave is the independence of each feature, with wiring that merely 
supports the most likely combinations of feature.

Keep the interfaces. They're well-designed (you should know!). Do you 
think they're likely to change?

Do we have a story for which this change would give value? Can we help to 
find another way to deliver it that doesn't break my stories (below)?

Cheers,
Liz.
--

As a JBehave user
I want the story framework to be independent of the implementation
So that I can extend Abbot / Selenium / Sahi / Fit / My experimental open 
source project classes.

As a JBehave user
I want to implement Given / Event / Outcome / Story / Scenario myself
So that I can make a World into a Given and set it up at the beginning of 
the scenario / use my Java 5 generics / use a sensible refactorable 
mocking framework.

--
Elizabeth Keogh
[EMAIL PROTECTED]
http://www.livejournal.com/users/sirenian

Reply via email to