I've just been reading through some basic design patterns,Could someone tell me if the term strategy pattern only applies if your implementing a completely abstract interface? What about when your children (concretes?) inherit from a parent class (the strategy?) with some implemented methods and some virtual and/or abstract functions? Otherwise the rest of the implementation, the idea that you can switch between different children at run time, is identical. This is something i'm quite familiar with, i was wondering if you would still call it the Strategy Pattern or if that term only applies to using an interface.Apologies if this question is not appropriate! Or if this is just nitpicking :) I'm still learning and i'm not really sure if design patterns are quite heavily defined within the industry or just a concept to be implemented as you like.
Clarification on the Strategy Pattern
c++;design patterns
Could someone tell me if the term strategy pattern only applies if  your implementing a completely abstract interface?Strategy pattern is about choosing the algorithm at runtime; technically the algorithm is ran by calling a function, so only that function needs to be abstract/left unimplemented. If all the similar algorithm call other function, independent of the algorithm, those functions can be pushed in the superclass. For example you implement a strategy pattern for saving something in a file; depending on something else you could be saving it in XML or binary format. You can implement the logic of saving the data in a file in the superclass (since it's common to all implementation) and the logic of converting the data in XML in a subclass and in binary in a another subclass.The idea behind patterns is not a rigorous implementation but an idea of design; you can implement it as you find it suitable for your particular problem.