Builder Pattern

Discussion in 'Python' started by Jason, Jan 29, 2006.

  1. Jason

    Jason Guest

    Jason, Jan 29, 2006
    #1
    1. Advertising

  2. Jason <> wrote:

    > Hi
    >
    > I really need an example of a builder pattern in python, the closest I
    > could find to something resembling builder was on this thread...
    >

    http://groups.google.co.uk/group/it.comp.lang.python/browse_thread/threa
    d/44f79c1def2583ca/200adefeefa5f3fa?lnk=st&q=design+pattern+builder+pyth
    on+-build&rnum=25#200adefeefa5f3fa
    >
    > Unfortunately I can't read the discussion it's possibly in Spanish.


    No, the leading 'it' in the newsgroup name means 'italian'. I was one
    of the discussants.

    > Does anyone know of a builder example for python? Thanking you in
    > advance for your help.


    The *example* is right there, e.g. at
    <http://groups.google.co.uk/group/it.comp.lang.python/msg/4edfee13b6fb51
    6f> for the Python translation of the example found at a URL quoted in
    the same post. If you want an EXAMPLE, there it is -- it's all code, no
    comments, so the fact that the following discussion is in Italian should
    be irrelevant, no?

    What the following discussion says is that the C++ -> Python
    transliteration is totally trivial and obvious and berates the original
    requestor for making me waste 10 minutes to provide it.


    Alex
    Alex Martelli, Jan 29, 2006
    #2
    1. Advertising

  3. Jason

    Paddy Guest

    > What the following discussion says is that the C++ -> Python
    > transliteration is totally trivial and obvious and berates the original
    > requestor for making me waste 10 minutes to provide it.


    Thanks for the giggle :)
    Paddy, Jan 29, 2006
    #3
  4. Jason

    Jason Guest

    I have converted another example of strategy which I prefer to the 2
    described earlier, here it is:

    class FindMinima:
    def algorithm(self):raise NotImplementedError


    class LeastSquares (FindMinima):
    def algorithm(self,line):
    return (1.1,2.2)


    class NewtonsMethod (FindMinima):
    def algorithm(self,line):
    return (3.3,4.4)

    class Bisection (FindMinima):
    def algorithm(self,line):
    return (5.5,6.6)

    class ConjugateGradient (FindMinima):
    def algorithm(self,line):
    return (3.3,4.4)



    class MinimaSolver: # context class
    strategy=''
    def __init__ (self,strategy):
    self.strategy=strategy

    def minima(self,line):
    return self.strategy.algorithm(line)

    def changeAlgorithm(self,newAlgorithm):
    self.strategy = newAlgorithm

    def test():
    solver=MinimaSolver(LeastSquares())
    print solver.minima((5.5,5.5))
    solver.changeAlgorithm(Bisection())
    print solver.minima((5.5,5.5))
    test()
    Jason, Feb 2, 2006
    #4
  5. Jason

    Peter Otten Guest

    > I have converted another example of strategy which I prefer to the 2
    > described earlier, here it is:
    >
    > class FindMinima:
    >         def algorithm(self):raise NotImplementedError


    When most of your code does nothing in a pompous way that is a sure sign
    that you are heading in the wrong direction. Here's a translation into
    python:

    def least_squares(line):
    return 1.1, 2.2

    def newtons_method(line):
    return 3.3, 4.4

    def bisection(line):
    return 5.5, 6.6

    def conjugate_gradient(line):
    return 3.3, 4.4

    def test():
    solver = least_squares
    print solver((5.5,5.5))
    solver = bisection
    print solver((5.5,5.5))

    test()

    Peter
    Peter Otten, Feb 2, 2006
    #5
    1. Advertising

Want to reply to this thread or ask your own question?

It takes just 2 minutes to sign up (and it's free!). Just click the sign up button to choose a username and then you can ask your own questions on the forum.
Similar Threads
  1. qazmlp
    Replies:
    2
    Views:
    367
    iksrazal
    Jan 31, 2004
  2. qazmlp
    Replies:
    2
    Views:
    521
    iksrazal
    Jan 31, 2004
  3. Mike
    Replies:
    2
    Views:
    333
    Stuart Golodetz
    May 22, 2006
  4. Replies:
    6
    Views:
    485
    Andrew
    Jun 11, 2009
  5. Phlip
    Replies:
    5
    Views:
    556
    Stefan Behnel
    Jan 13, 2010
Loading...

Share This Page