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
