Factories and Builders [was Re: lambdak...]
Steven D'Aprano
steve+comp.lang.python at pearwood.info
Fri Jan 16 00:08:22 EST 2015
Roy Smith wrote:
> The ebb and flow of technology has recently brought me someplace I never
> thought I'd be. Java-land. And what I've discovered is that factories
> are so last year. Apparently builders are the new thing.
I've never really understand why "abstract factory", "factory method"
and "builder" are considered different design patterns. They're variants on
the same idea.
class Spam:
def create(self, a, b, c, d):
if a == "fast":
theclass = FastClass
elif a == "steady":
theclass = SteadyClass
obj = theclass(b, c, d)
# obj.extra_stuff = self.get_stuff()
return obj
As I understand it, if FastClass and SteadyClass are subclasses of Spam,
then this is the Factory Method design pattern, but if they are independent
classes unrelated to Spam, then it is the Abstract Factory design pattern.
But if I uncomment out the "obj.extra_stuff" line, it becomes a Builder.
--
Steven
More information about the Python-list
mailing list